| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Подключение библиотеки .dll |
| Автор: laren 21.3.2011, 14:34 |
| Добрый день. Пытался попробовать решить проблему самостоятельно, пользовался советами отсюда http://forum.vingrad.ru/topic-273411.html, но решить проблему так и не получилось. Может подскажете как все таки решить ее: Есть у меня библиотека pssdk, хочу ее использовать в своем проекте. Имеется: 1) Файлы pssdk.dll, pssdk.lib, набор заголовочных файлов в папке includes 2) Проект, в котором хочу использовать классы и методы из этой библиотеки Делал следующее : 1) В .pro файле прописывал INCLUDEPATH += c:/Qt/WiF-Snif/WiF-Snif/pssdk-lib/includes LIBS += c:/Qt/WiF-Snif/WiF-Snif/pssdk-lib/pssdk.dll 2) Создавал файл pssdk.pri и пробовал подключать его также в .pro include(c:\Qt\WiF-Snif\WiF-Snif\pssdk-lib\pssdk.pri) /* содержимое файла .pri на всякий случай INCLUDEPATH += H:\WiF-Snif\WiF-Snif\pssdk-lib\includes\ QMAKE_LIBDIR += H:\WiF-Snif\WiF-Snif\pssdk-lib\ LIBS += -lpssdk */ Ни одно из действий к желаемому результату не привело. В коде классы библиотеки видны, ассистант подсвечивает классы как существующие (оно то понятно, в заголовочных файлах дано объявление этих классов), но при попытке сборки проекта вылазит следующая ошибка (при попытке объявить элемент класса CHNPSManager Manager;): Текст ошибки: C:\Qt\WiF-Snif\WiF-Snif-build-desktop/../WiF-Snif/pssdk-lib/includes/HNPSManager.h:30: ошибка: undefined reference to `MgrCreate@0' В заголовочном файле библиотеки на строке CHNPSManager() { hMgr = MgrCreate(); } В текущем файле подключен заголовочник #include "HNPsSdkUser.h" в котором есть строчка #include "HNPsSdk.h" в котором есть объявление HANDLE __stdcall MgrCreate(); определение которой он должен вытащить из .dll файла, насколько я понимаю. Вот я подозреваю что компилятор не видит ни объявления ни определения этого метода. День убил, не могу понять, что же не так делаю. Проект делаю в QtCreator. Заранее спасибо. |
| Автор: borisbn 21.3.2011, 14:37 |
замени pssdk.dll на pssdk.lib |
| Автор: laren 21.3.2011, 15:48 |
| Получилось. Спасибо. Все собралось, только при запуске в консоли вылезла ошибка: Запускается C:\Qt\WiF-Snif\WiF-Snif-build-desktop\debug\WiF-Snif.exe... C:\Qt\WiF-Snif\WiF-Snif-build-desktop\debug\WiF-Snif.exe завершился с кодом -1073741515 Проблема вылечилась копированием файлов .lib .dll к экзешнику. |
| Автор: laren 21.3.2011, 16:00 | ||||||
Подумал что ошибка, т.к. окно приложения даже не появилось. А в гугле нашел вот http://www.forum.crossplatform.ru/index.php?showtopic=4336
|
| Автор: borisbn 21.3.2011, 16:31 |
| ясно. это так Creator реагирует на ошибку.... В других средах (в студии) так прямо и сообщается - не найдена DLL такая-то |