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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [qt4.5, win] Проблема с подключением dll  (Прочитано 13989 раз)
Urvin
Гость
« : Август 31, 2009, 14:47 »

Очень сильно надеюсь на помощь - мне одному не справиться.

Есть такая микросхема для общения девайсов и ПК по usb - ft232rl. Разработчик микросхемы предлагает для общения использовать свою библиотеку, уже скомпилированную в ftd2xx.dll.

Авторам программ для ПК предлагается использовать саму ftd2xx.dll, заголовок ftd2xx.h и ftd2xx.lib.
Также на сайте разработчика есть примеры для нескольких языков программирования, и, что понятно Qt диалекта среди них нет.
В сети найден только один пример с открытыми сорцами под Qt: IO Expander Control, но мне никак не раскрутить его до включения библиотеки.

У меня никак не выходит подключить эту библиотеку к моему проекту. Пытаюсь всячески: и подключая и заголовок, и lib, и только заголовок с LIBS += -lftd2xx, и всяческими производными вариантами.

Через QLibrary("ftd2xx") подключиться удается, вот только при различном использовании функций (документированном) программа вылетает. Так что обход препятствия у меня не вышел).

Меня также смущает, что функции в заголовке расписаны так:
Код
C++ (Qt)
FTD2XX_API
FT_STATUS WINAPI FT_OpenEx(
   PVOID pArg1,
   DWORD Flags,
   FT_HANDLE *pHandle
   );
 
FTD2XX_API
FT_STATUS WINAPI FT_ListDevices(
PVOID pArg1,
PVOID pArg2,
DWORD Flags
);


Расскажите пожалуйста, как правильно подключить эту dll!

Файлы ftd2xx.dll, ftd2xx.h и ftd2xx.lib можно скачать отсюда или с сайта разработчика..
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Август 31, 2009, 15:26 »

компилятор какой? мингв вроде не дружит с библиотеками, собранными в студии
Записан
Urvin
Гость
« Ответ #2 : Август 31, 2009, 15:29 »

mingw, да.

фишка в том, что этот IO Expander Control (пример на qt) у меня собирается. Но он написан человеком, привыкшим грузить самосвалы детским савочком.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #3 : Август 31, 2009, 15:30 »

так а там библиотека эта используется?Улыбающийся
Записан
Urvin
Гость
« Ответ #4 : Август 31, 2009, 15:41 »

так а там библиотека эта используется?Улыбающийся

да, но у меня не выходит ту программу "разломать" до непосредственно правильного включения библиотеки.
.pro там выглядит так:
Код
C++ (Qt)
HEADERS += USBCommunication\FTD2XX.H
LIBS += USBCommunication\FTD2XX.LIB
 
Записан
niXman
Гость
« Ответ #5 : Август 31, 2009, 18:34 »

Динамически используй.
Записан
Urvin
Гость
« Ответ #6 : Август 31, 2009, 18:45 »

Динамически используй.
Динамически попробовал. Трабл в том что функции можно вызывать по-разному, т.е. в библиотеке работает перегрузка или условные переходы в зависимости от типов параметров. И часть функционала попросту отваливается, хотя другая часть может работать.
Записан
zenden
Гость
« Ответ #7 : Август 31, 2009, 19:23 »

Написал что-то такое:

 
Код
C++ (Qt)
#include <windows.h>
#include "ftd2xx.h"
 
...
 
FT_STATUS ftStatus = FT_ListDevices(0, 0, FT_LIST_BY_INDEX | FT_OPEN_BY_SERIAL_NUMBER);
       if (ftStatus!=FT_OK) //Get first device serial number
       {
               printf("Couldn't get FTDI device name");
               return ;
       }
 
       FT_HANDLE ftHandle = FT_W32_CreateFile(0,
               GENERIC_READ|GENERIC_WRITE,
               0,
               0,
               OPEN_EXISTING,
               FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED | FT_OPEN_BY_SERIAL_NUMBER,
               0); //

в .pro файле

Код:
LIBS += ftd2xx.lib

Всё скомпилировалось без проблем, запускается и даже не вылетает. ЧЯДНТ?
Записан
Urvin
Гость
« Ответ #8 : Сентябрь 01, 2009, 10:38 »

Код:
#include <windows.h>
  Веселый

Простите дурака, люблю в чистом поле проблему найти)
Записан
niXman
Гость
« Ответ #9 : Сентябрь 02, 2009, 04:00 »

ппц!
и в этом была вся проблема?
попытаюсь найти форум на котором ты не задавал этот вопрос.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #10 : Сентябрь 02, 2009, 10:33 »

можно вместо windows.h подключить qt_windows.h Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Hammer
Гость
« Ответ #11 : Февраль 07, 2013, 11:25 »

Некропост, ага

Чо ж у меня-то не работает? Везде undefined reference. Специально создал пустой прожект и в корень положил все два файла, вписав их в .pro
Упомянутый топикстартером IO Expander у меня тоже собирается...

[UPDATE]
С файлами .h и .lib из IO Expander все работает. Дллка в системе не та у меня? или надо этот .lib конвертнуть в чегонить?

Ай, х с ним, сделаю через QLibrary
« Последнее редактирование: Февраль 08, 2013, 08:32 от Hammer » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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