C ++ ODBC проблема с заголовком sqlucode.h - PullRequest
0 голосов
/ 24 апреля 2009

Я нашел отличный пример C ++ / ODBC здесь ...

Проект, который я скачал, отлично собирается и все работает. Однако, когда я копирую файлы .cpp и .h в другой проект, у меня возникает проблема со связыванием.

Мне нужна функция SQLConnect в sql.h. Когда я щелкаю эту функцию правой кнопкой мыши в файле easyodbc.h в загруженном проекте, она переходит к объявлению в sql.h. Жизнь хороша.

Однако в проекте, который я создал, когда я делаю это, он переходит к определению UNICODE в sqlucode.h. Кажется, это вызывает проблемы, и мой тестовый проект падает.

У меня нет #include для sqlucdode.h где-либо в моем проекте, но он по-прежнему разрешает объявление в sqlucode.h. Как я могу предотвратить это? Благодарю.

1 Ответ

5 голосов
/ 24 апреля 2009

Похоже, у вас проблема с препроцессором, а не проблема с линковкой.

Возможно, в вашем файле проекта есть определение препроцессора для UNICODE (или _UNICODE). В Visual C ++ 2005 и 2008 вы можете исправить это, перейдя в свойства своего проекта и изменив набор символов с Использовать набор символов Unicode на Использовать многобайтовый набор символов . Когда вы применяете этот параметр, Visual Studio устанавливает правильные параметры препроцессора и компоновщика для вас.

Если у вас есть более ранняя версия Visual Studio, вы все равно можете исправить ее, изменив определения препроцессора для UNICODE и _UNICODE на _MBCS - просто вам придется найти их самостоятельно.

РЕДАКТИРОВАТЬ: я только что скачал этот пример кода и попробовал его - хорошая новость, это точно, как я и предполагал, перейдите на многобайтовый набор символов, и все будет в порядке.

...