-1

接続されている USB デバイスに関する情報を取得するために、VS2010 で libusb-win32 で記述された単純なコードを実行しようとしています。うまく実行できません。

#include <stdio.h>
#include <string.h>
#include "lusb0_usb.h"

int verbose = 1;

int print_device(struct usb_device *dev, int level);

int main(int argc, char *argv[])
{
    struct usb_bus *bus;

    if (argc > 1 && !strcmp(argv[1], "-v"))
        verbose = 1;

    usb_init();
    usb_set_debug(255);

    int nBusses = usb_find_busses();
    int nDevices = usb_find_devices();
    if(nDevices <=0) return 0;
    for (bus = usb_get_busses(); bus; bus = bus->next)
    {
        if (bus->root_dev && !verbose)
            print_device(bus->root_dev, 0);
        else
        {
            struct usb_device *dev;

            for (dev = bus->devices; dev; dev = dev->next)
                print_device(dev, 0);
        }
    }

    return 0;
}

プロジェクト構成は Win32、デバッグで、x86 dll & lib ファイルを使用しています。コードをコンパイルできます。はusb_find_busses()1usb_find_devices()を返し、0 を返します。正しい数値が得られない理由がわかりません。bus->root_dev を出力すると、次の出力が出力されます。

Dev #0: 0000 - 0000
bLength:             18
bDescriptorType:     01h
bcdUSB:              0200h
bDeviceClass:        09h
bDeviceSubClass:     00h
bDeviceProtocol:     00h
bMaxPacketSize0:     40h
idVendor:            0000h
idProduct:           0000h
bcdDevice:           0100h
iManufacturer:       0
iProduct:            0
iSerialNumber:       0
bNumConfigurations:  0
  Couldn't retrieve descriptors

inf-wizard.exe を実行したところ、ベンダー ID とデバイス ID を持つすべてのデバイスを確認できました。何が欠けているのかわかりません。

4

1 に答える 1