2013-05-12 2 views
0

는이 코드를 실행하면어떻게

#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 
을 얻을 연결된 USB 장치의 목록을 가져 코딩 다음 코드에서 참조하시기 바랍니다

이 코드를 잘못 작성했다고 생각합니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

0

아마도 정상적으로 실행 중입니다. 출력을 볼 수 있도록 콘솔을 일시 중지해야합니다.

시도

#include <conio.h> 

_getch(); 

또는 일시 중지하고 사용자의 입력을 기다리는 다른 방법을 사용하여 추가.

0

다음 코드는 목적-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 제품"대신을 갈 필요가 생각합니다.