Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
1. Исходная библиотека написана на С++, изначально под Windows. Она же единственная и неповторимая LComp. И никакой libusb.
2. Если программируете под Windows, то заголовочный файл windows.h просто необходим.
3. Попробуйте добавить #include <initguid.h> где-нибудь перед включением ifc_ldev.h.
Да, теперь собралось, заработало. Спасибо.
Инициализация модуля. И подключение заголовков библиотеки
#include <windows.h>
//#define INITGUID
#include "../LIBRARY/include/ioctl.h"
#include "../LIBRARY/include/ifc_ldev.h"
#include "../LIBRARY/include/create.cpp"
#include "../LIBRARY/include/e2010cmd.h"
#include <math.h>
void *handle = NULL;
LUnknown *pIUnknown;
IDaqLDevice *pI = 0;
SLOT_PAR sl;
ULONG slot;
char biosname[255];
PLATA_DESCR_U2 ph;
ULONG pointsize;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pbInit_clicked()
{
if(CallCreateInstance(L"lcomp64.dll")==0)
{
QMessageBox::critical(this, "Error", "Failed load library", QMessageBox::Ok);
return;
}
pIUnknown = CreateInstance(0);
if(pIUnknown == NULL)
{
QMessageBox::critical(this, "Error", "Failed to get interface", QMessageBox::Ok);
return;
}
HRESULT hr = pIUnknown->QueryInterface(IID_ILDEV,(void**)&pI);
if(!SUCCEEDED(hr))
{
QMessageBox::critical(this, "Error", "Failed QueryInterface", QMessageBox::Ok);
return;
}
pIUnknown->Release();
pI->OpenLDevice(); // открыли устройство
pI->GetSlotParam(&sl); // считали параметры слота - интересует тип платы
pI->LoadBios(biosname); // загрузили биос, если не поддерживается то вернет L_NOTSUPPORTED
pI->PlataTest(); // протестировали, у некоторых плат это просто заглушка
pI->ReadPlataDescr(&ph); // обязательно прочитали флеш, он нужен для расчетов внутри библиотеки
pI->GetParameter(L_POINT_SIZE, &pointsize);
}
Добрый день!
Конфигурация: Win10, lcomp.dll (архив от 24.01.23 скачан с вашего сайта), Qt 5.14.1 (или Qt6.9 - неважно), компилятор MinGW64. Оборудование e20-10.
Взял из этой же папки пример (L7XX.OSC) - он поддерживает e20-10. Собранный пример запускается и работает (собран под MSVS).
Если создать проект в Qt-Creator и подключить туда файлы заголовков библиотеки (как в примере), то вываливается огромная куча ошибок о неизвестных типах данных.
Инклудим <windows.h> - решает проблему.
После некоторых манипуляций... В итоге получаю ошибку
C:/Qt/Tools/mingw1310_64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: debug/mainwindow.o:mainwindow.cpp:(.rdata$.refptr.IID_ILDEV[.refptr.IID_ILDEV]+0x0): undefined reference to `IID_ILDEV'
Как корректно подключить библиотеку для работы с ней в Qt?
Я правильно понимаю, что есть исходная библиотека на Си (она под линукс), есть Ваша обертка над этим в винде - lcomp и есть чисто Ваша библиотека libusb. Какой из них корректно пользоваться?
Страницы 1