Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.01.2012, 19:21   #1
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
Смех И все мы не от мира сего

Привет. Возникла такая проблемка.Может быть не по адресу, но я плохо представляю к какой теме ее отнести т.к тока 2 часа ее изучаю.
Вот проблемапример из статьи)
#define INITGUID
#define DBINITCONSTANTS

#include "stdafx.h"
#include "iostream.h"->не находит библиотек хоть убей(переделал в <iostream>однако cout не работает
#include "oledb.h" // OLE DB файлы
#include "oledberr.h"
const GUID CLSID_MSDASQL = {0xC8B522CBL,0x5CF3,0x11CE,{0xAD,0x E5,0x00,0xAA,0x00,0x44,0x77,0x3D}};


void main()
{
// Инициализация COM
if (FAILED( CoInitialize(NULL) ))
{
cout << "Unable to initialize COM" << endl;
return;
}

IDBInitialize *pIDBInitialize = NULL;
HRESULT hr;
hr=CoCreateInstance(CLSID_MSDASQL,N ULL,CLSCTX_INPROC_SERVER,
IID_IDBInitialize,(void**)&pIDBInit ialize);
if (FAILED(hr))
{
cout << "CoCreateInstance Failed" << endl;
return;
}

pIDBInitialize->Release();
// Деинициализация COM
CoUninitialize();
};
Вот ошибки:
1>.\ConsolTest.cpp(23) : error C2065: cout: необъявленный идентификатор
1>.\ConsolTest.cpp(23) : error C2065: endl: необъявленный идентификатор
1>.\ConsolTest.cpp(32) : error C2065: cout: необъявленный идентификатор
1>.\ConsolTest.cpp(32) : error C2065: endl: необъявленный идентификатор


Как сделть так чтобы код заработал!!!!
Notan1310 вне форума
Старый 29.01.2012, 19:36   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

все кроме stdafx нужно заключить в угловые скобки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 29.01.2012, 19:42   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Никогда не мог понять, как так выходит? Человек уже дорос до состояния, когда он начинает трогать COM, но при этом не знает даже, как подключить стримы к проекту?

Я могу понять: новичок не знает, что это за ошибка такая:
error C2065: cout: необъявленный идентификатор

Но человек уже с технологиями работает....

Ну что тут можно сделать?

Можно попробовать объяснить:

Код:
#include "stdafx.h" //<--- внимательно смотрим вот сюда

//Выброшен за ненадобностью
//#include "iostream.h"->не находит библиотек хоть убей(переделал в 

#include <iostream> //Подключение библиотеки


#include "oledb.h" // OLE DB файлы
#include "oledberr.h" 
const GUID CLSID_MSDASQL = {0xC8B522CBL,0x5CF3,0x11CE,{0xAD,0x E5,0x00,0xAA,0x00,0x44,0x77,0x3D}};


void main()
{
// Инициализация COM
if (FAILED( CoInitialize(NULL) ))
{
    //Открываем книжку для самых маленьких, и читаем, где живут стандартные    
    //классы, и объекты
    std::cout << "Unable to initialize COM" << std:: endl; 
    return;
}

IDBInitialize *pIDBInitialize = NULL;
HRESULT hr;
hr=CoCreateInstance(CLSID_MSDASQL,N ULL,CLSCTX_INPROC_SERVER,
IID_IDBInitialize,(void**)&pIDBInit ialize);
if (FAILED(hr)) 
{
std:: cout << "CoCreateInstance Failed" << std::endl;
return;
}

pIDBInitialize->Release();
// Деинициализация COM
CoUninitialize();
};
Напоследок, задаём себе вопрос: что такое #include "stdafx.h" ?
Зачем он нужен?
И почему добавление всяких iostream после этого инклюда - ошибочный подход к проектированию, и свидетельство безграмотности автора кода.
_Bers вне форума
Старый 29.01.2012, 19:43   #4
Notan1310
Форумчанин
 
Регистрация: 01.01.2012
Сообщений: 118
По умолчанию

Может тут нужен другой подход. Но блин сам пример нифига почему то не работает.Выскакивет куча ошибок!!!!Че ни за фигня??!!!

1>ConsolTest.obj : error LNK2028: ссылка на неразрешенную лексему (0A000297) "extern "C" void __stdcall CoUninitialize(void)" (?CoUninitialize@@$$J10YGXXZ) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>ConsolTest.obj : error LNK2028: ссылка на неразрешенную лексему (0A00029A) "extern "C" long __stdcall CoCreateInstance(struct _GUID const &,struct IUnknown *,unsigned long,struct _GUID const &,void * *)" (?CoCreateInstance@@$$J220YGJABU_GU ID@@PAUIUnknown@@K0PAPAX@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>ConsolTest.obj : error LNK2028: ссылка на неразрешенную лексему (0A00029C) "extern "C" long __stdcall CoInitialize(void *)" (?CoInitialize@@$$J14YGJPAX@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>ConsolTest.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" void __stdcall CoUninitialize(void)" (?CoUninitialize@@$$J10YGXXZ) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>ConsolTest.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" long __stdcall CoCreateInstance(struct _GUID const &,struct IUnknown *,unsigned long,struct _GUID const &,void * *)" (?CoCreateInstance@@$$J220YGJABU_GU ID@@PAUIUnknown@@K0PAPAX@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>ConsolTest.obj : error LNK2019: ссылка на неразрешенный внешний символ "extern "C" long __stdcall CoInitialize(void *)" (?CoInitialize@@$$J14YGJPAX@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>C:\Documents and Settings\User\Мои документы\Visual Studio 2008\Projects\ConsolTest\Debug\Cons olTest.exe : fatal error LNK1120: 6 неразрешенных внешних элементов
Notan1310 вне форума
Старый 29.01.2012, 20:34   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Notan1310
Угадай почему я закрыл тему?
I'm learning to live...
Stilet вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сего дня был случай... Busine2009 Microsoft Office Word 5 18.07.2009 09:53
Великие Программисты сего фурума, протяните "Руку помощи" неопытному студенту. Я в долгу не останусь!)) Александр (МАИ) Помощь студентам 7 31.01.2009 19:16
Все Страны Мира Hallo Обсуждение статей 0 23.03.2007 20:47