Qt学习:Qt5.9.2+vs2017移植usb第三方库

接下来用 Debug x64模式编译文件,会生成所需要的动态库。 我们需要三个文件:hidapi.h hidapi.dll hidapi.lib hidapi.dll 和 hidapi.lib 在所建工程的一级目录下 x64 ->debug下

接下来新建一个测试工程 :hidtest 将头文件hidapi.h拷贝到工程目录下, 新建hidtest.cpp,加入如下代码进行简单测试:

#include <stdio.h> #include <string.h> #include <stdlib.h> #include “hidapi.h” int main(int argc, char* argv[]) { int res; unsigned char buf[256]; #define MAX_STR 255 wchar_t wstr[MAX_STR]; hid_device *handle; int i;

#ifdef WIN32 UNREFERENCED_PARAMETER(argc); UNREFERENCED_PARAMETER(argv); #endif

struct hid_device_info *devs, *cur_dev;

devs = hid_enumerate(0x0, 0x0);
cur_dev = devs;
while (cur_dev) {
	printf("Device Found
  type: %04hx %04hx
  path: %s
  serial_number: %ls", cur_dev->vendor_id, cur_dev->product_id, cur_dev->path, cur_dev->serial_number);
	printf("
");
	printf("  Manufacturer: %ls
", cur_dev->manufacturer_string);
	printf("  Product:      %ls
", cur_dev->product_string);
	printf("  Release:      %hx
", cur_dev->release_number);
	printf("  Interface:    %d
", cur_dev->interface_number);
	printf("
");
	cur_dev = cur_dev->next;
}
hid_free_enumeration(devs);

// Open the device using the VID, PID,
// and optionally the Serial number.
handle = hid_open(0x4d8, 0x3f, L"12345");
handle = hid_open(0x17ef, 0x6018, NULL);
if (!handle) {
	printf("unable to open device
");
	return 1;   //可以通过返回值确认程序出错位置
}
system("pause");
return 0;

} 进行工程属性设置: 在附加库目录中加入hidapi.lib所在文件夹目录 在附加依赖项中加入hidapi.lib

如果编译通过,返回值为0,说明该库正确,可以正确打开hidusb设备。

注意代码:handle = hid_open(0x17ef, 0x6018, NULL); 此处vid和hid值需要通过前面枚举出的设备值修改以对应自己电脑上的设备,否则无法正确打开。 调试里可以先把打开设备那几行代码注释掉,单独查看枚举出的hidusb设备信息。否则会因为if语句中的return 1; 导致程序一闪而过,无法观察。

调试好这个,接下来可以在qt工程中正常使用代码。 注意配置好工程,拷贝好相应文件。

经验分享 程序员 微信小程序 职场和发展