【发布时间】:2014-08-25 15:12:06
【问题描述】:
我要做的就是列出使用 libusb win32 的 USB 设备,但我遇到了很多麻烦。我正在使用 c++ 和 minGW。这是我的简单程序,可以编译但不会列出任何内容。如果有人能告诉我从这里去哪里,将不胜感激。
cout << "\nFinding Devices..." << endl;
struct usb_bus *busses;
usb_init();
usb_find_busses();
usb_find_devices();
busses = usb_get_busses();
usb_set_debug(3);
struct usb_bus *bus;
int c, i, a;
for (bus = busses; bus; bus->next){
struct usb_device *dev;
for (dev = bus->devices; dev; dev = dev->next){
if (dev->descriptor.bDeviceClass == 7){
usb_dev_handle usb_open(struct usb_device *dev);
int usb_set_configuration(usb_dev_handle *dev, int configuration);
}}}
【问题讨论】:
-
在第一个
for循环中尝试bus = bus->next。 -
我希望上面的代码可以无限循环(当然,假设您的计算机有一个 USB 子系统...)
-
我还建议检查函数的返回码是一种很好的编程习惯,而不是仅仅假设它们已经成功。
usb_find_busses和usb_find_devices都返回他们找到的总线/设备的数量(在第一次调用时)。您可能应该检查这不是零。 -
我检查了,我猜该程序没有找到任何总线。我显然已经将我的设备插入计算机,所以你能帮我解决这个问题。 @tom
-
你修复了我指出的第一个错误吗?