saide_a Ответов: 2

Есть ли способ использовать библиотеку SQL C++ в программе mfc?


всем привет
Я написал библиотеку для своих задач базы данных в консольной среде c++
затем, когда я добавил эту lib в свою программу MFC, она дает мне некоторые ошибки компоновщика:
LNK2001 неразрешенный внешний символ _SQLSetEnvAttr@16
LNK2001 неразрешенный внешний символ _SQLAllocHandle@12
Я хочу знать, есть ли способ связать мою программу MFC с моей базой данных sql;
любой комментарий приветствуется.

Что я уже пробовал:

моя программа прекрасно работает в консольном приложении

2 Ответов

Рейтинг:
17

Jochen Arndt

Вы должны связать свое приложение с библиотекой, содержащей эти функции, которая является библиотекой odbc32.Либ как вы уже сделали для вашего консольного приложения.

Вы можете сделать это в настройках проекта по адресу Компоновщик - Ввод - Дополнительные Зависимости или с помощью pragma заявление в одном из ваших исходных файлов:

#pragma comment(lib, "odbc32.lib")


KarstenK

Сообщение об ошибке звучит так, что он включает lib, но экспортированные имена не совпадают. Вот почему мой ответ включает в себя еще несколько советов.

PS: Если это не поможет, нам нужно больше информации.

Jochen Arndt

Мое решение принято. Я думаю, он просто забыл добавить библиотеку к зависимостям. Обратите внимание также, что это системная библиотека MS, а не самописная.

KarstenK

Я вижу - так просто ;-)

Рейтинг:
0

KarstenK

Вы можете включить в него библиотеку C++, но здесь есть много подводных камней. Включите ли вы файл lib в настройки компоновщика (или ссылку в коде). Двоичные файлы также должны соответствовать x32 или x64. Если библиотека dll использует MFC, то лучше статически связать ее (или вы используете тип библиотеки DLL MFC).

Еще одна большая проблема заключается в том, что вам нужно правильно экспортировать функцию в dll. Читать это Документация Microsoft какие варианты у вас есть. Обычно это

__declspec(dllexport)
это самый лучший способ.