libusb_claim_interface在Win7 64位中引发SIGSEGV(分段错误)

时间:2018-03-21 22:57:17

标签: c libusb-1.0

我正在尝试使用USB HID复合设备(自写)。 有两个接口,都是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。 我试图获取字符串描述符并设置配置。我得到了同样的结果。

哪里错了?

0 个答案:

没有答案