Как распечатать список подключенных устройств

Пожалуйста, посмотрите на следующий код, который закодирован, чтобы получить список подключенных 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

Другие решения

Следующий код работает в target-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 Товар «вместо.

0

По вопросам рекламы [email protected]