Russian Qt Forum
Ноябрь 01, 2024, 13:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с QLibrary  (Прочитано 3372 раз)
VadimR
Гость
« : Ноябрь 01, 2012, 18:01 »

Вечер добрый. Возникла проблема с импортом функций из dll'ки.
Имеем библиотеку AtUsbHID.dll, скрин документации прилагается.

Вылетает segfault на findHidDevice(VID, PID).
Код
#include <QtCore/QCoreApplication>
#include <QTextStream>
#include <QLibrary>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   QLibrary lib("AtUsbHid.dll");
   QTextStream cout(stdout);
 
   unsigned int VID = 0x0583;
   unsigned int PID = 0xB031;
 
   if (!lib.load()) {
       cout << "Error" << endl;
   } else cout << "Library loaded." << endl;
 
   typedef bool (*MyPrototype)(unsigned int, unsigned int);
   MyPrototype findHidDevice = (MyPrototype) lib.resolve("findHidDevice");
 
   if (findHidDevice) {
       cout << "Function \"findHidDevice\" loaded!" << endl;
       if (findHidDevice(VID, PID))
           cout << "Work it!" << endl;
   }
 
   cout << "End." << endl;
   return a.exec();
}



PS Мог ошибиться разделом
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1 : Ноябрь 01, 2012, 22:23 »

Проверить соглашение о вызовах (скорее всего там stdcall)
Записан
VadimR
Гость
« Ответ #2 : Ноябрь 02, 2012, 19:55 »

Действительно. Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 24.