2013-05-12 4 views
0

Пожалуйста, посмотрите на следующий код, который кодируется, чтобы получить список USB устройств, подключенныхКак напечатать список подключенных устройств

#include <lusb0_usb.h> 
#include <iostream> 

using namespace std; 

int main() 
{ 
    usb_init(); 
    usb_find_busses(); 
    usb_find_devices(); 

    struct usb_bus *busses = usb_get_busses(); 
    struct usb_bus *bus; 
    struct usb_device *dev; 


    for(bus=busses;bus;bus=bus->next) 
    { 
     for(dev=bus->devices;dev;dev->next) 
     { 
      cout << dev->descriptor.iProduct << endl; 
     } 
    } 
} 

Когда я запускаю этот код, я получаю

Starting C:\Users\yohan\Documents\QTPeojects\USB-build-Desktop_Qt_5_0_0_beta2_MSVC2010_32bit_SDK-Release\release\USB.exe... 
C:\Users\yohan\Documents\QTPeojects\USB-build-Desktop_Qt_5_0_0_beta2_MSVC2010_32bit_SDK-Release\release\USB.exe exited with code 0 

Я считаю, что неправильно сделал этот код. Как я могу это исправить?

ответ

0

Возможно, это работает нормально. Вам нужно приостановить консоль, чтобы вы могли видеть результат.

Попробуйте добавить

#include <conio.h> 

_getch(); 

Или использовать другой метод, чтобы сделать паузу и ждать ввода пользователя.

0

Следующий код работает в Objective-C:

libusb_device **devs; //pointer to pointer of device, used to retrieve a list of devices 
ssize_t cnt; //holding number of devices in list 
//libusb_set_debug(ctx, 3); //set verbosity level to 3, as suggested in the documentation 
cnt = libusb_get_device_list(ctx, &devs); //get the list of devices 
if(cnt < 0) { 
    return false; 
    //there was an error 
} 
//print total number of usb devices 
ssize_t i; //for iterating through the list 
for(i = 0; i < cnt; i++) { 
    struct libusb_device_descriptor desc; 
    if (libusb_get_device_descriptor(devs[i], &desc) >= 0) { 
     if ((desc.idVendor == 0x04D8) && (desc.idProduct == 0x0204)){ 
      libusb_free_device_list(devs, 1); 
      return true; 
     } 
    } 
} 
libusb_free_device_list(devs, 1); //free the list, unref the devices in it 

return false; 

Я считаю, что вам нужно идти "descriptor.i d продукта" вместо этого.

Смежные вопросы