libusb_claim_interface вызывает SIGSEGV (ошибка сегментации) в Win7 64bit
Я пытаюсь работать с USB HID Composite (написано самостоятельно). Есть два интерфейса, оба HID. Но второй - Custom HID.
Я использую libusb-1.0, но это то, что я могу это открытое устройство. Любые другие операции, которые я пробовал, поднимают SEGV.
Это код (QT Creator, MinGW64):
int main(int argc, char *argv[])
{
int i=0;
struct libusb_device_descriptor desc;
libusb_device ** devs;
libusb_device * dev;
int r = libusb_init(NULL);
if (r < 0)
return r;
int cnt = libusb_get_device_list(NULL, &devs);
if (cnt < 0)
return cnt;
while((dev = devs[i++]) != 0){
r = libusb_get_device_descriptor(dev, &desc);
if (r < 0) {
fprintf(stderr, "failed to get device descriptor");
return -1;
}
if (desc.idVendor == 0x0483){
libusb_device_handle * h;
if (!libusb_open(dev,&h)){
if (0 == (r=libusb_claim_interface (h,1)) )
Здесь я получил SIGSEGV. Я попытался получить строковый дескриптор и настроить конфигурацию. У меня такой же результат.
Где я не прав?