Для работы с устройствами usb удобно пользоваться библиотеками libusb или её форком libusbx.
О том как установить их и пойдет речь в этой заметке.
Скачайте библиотеку libusbx. Распаковав архив вы увидите такое:
В зависимости от разрядности вашей операционной системы (32 или 64) и компилятора (mingw или visual studio) скопируйте из папки MinGW32 или MS32 (для 32 битной системы), MinGW64 или MS64 (для 64 битной) файл libusb-1.0.dll в C:Windowssystem.
А файлы libusb-1.0.lib и libusb-1.0.pdb в C:Program FilesMicrosoft Visual Studio 10.0VClib.
Из папки include скопируйте файл libsub.h в C:Program FilesMicrosoft Visual Studio 10.0VCinclude
После этого перезапустите Visual Studio.
Протестировать работу можно так:
// usb.cpp : Defines the entry point for the console application. // #include «stdafx.h» #include <libusb.h> static void print_devs(libusb_device **devs) { libusb_device *dev; int i = 0, j = 0; uint8_t path[8]; while ((dev = devs[i++]) != NULL) { struct libusb_device_descriptor desc; int r = libusb_get_device_descriptor(dev, &desc); if (r < 0) { fprintf(stderr, «failed to get device descriptor»); return; } printf(«%04x:%04x (bus %d, device %d)», desc.idVendor, desc.idProduct, libusb_get_bus_number(dev), libusb_get_device_address(dev)); r = libusb_get_port_numbers(dev, path, sizeof(path)); if (r > 0) { printf(» path: %d», path[0]); for (j = 1; j < r; j++) printf(«.%d», path[j]); } printf(«n»); } } int _tmain(int argc, _TCHAR* argv[]) { libusb_device **devs; int r; ssize_t cnt; r = libusb_init(NULL); if (r < 0) return r; cnt = libusb_get_device_list(NULL, &devs); if (cnt < 0) return (int) cnt; print_devs(devs); libusb_free_device_list(devs, 1); libusb_exit(NULL); return 0; }
Готово.
Источник: