Herausfinden welche Geräte an einem USB-Hub hängen
-
Probe-Nutzer schrieb:
Hallo,
vielleicht kannst du das Problem mit den Informationen von hier:
http://social.msdn.microsoft.com/Forums/en-AU/vcgeneral/thread/522a7180-c6aa-439f-963f-0ed10d49a239
lösen.
MfG,
Probe-Nutzer
Hey cool, thx!!!
-
Die Fehlermeldungen hören nicht auf.
Das ist ein Beispiel von http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174// Include Windows headers #include <windows.h> #include <stdio.h> #include <tchar.h> #include <strsafe.h> // Include WinUSB headers #include <winusb.h> #include <Usb100.h> #include <Setupapi.h> #define BOOL int #define TRUE 1 #define FALSE 0 // Linked libraries #pragma comment (lib , "setupapi.lib" ) #pragma comment (lib , "winusb.lib" ) // f18a0e88-c30c-11d0-8815-00a0c906bed8 // Constant for {D696BFEB-1734-417d-8A04-86D01071C512} static const GUID OSR_DEVICE_INTERFACE = { 0xf18a0e88, 0xc30c, 0x11d0, { 0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8 } }; int main() { printf("Hallo Welt!\n"); //PHANDLE hDeviceHandle; //GetDeviceHandle(OSR_DEVICE_INTERFACE, &hDeviceHandle); getchar(); return 0; } BOOL GetDeviceHandle (GUID guidDeviceInterface, PHANDLE hDeviceHandle) { if (guidDeviceInterface==GUID_NULL) { return FALSE; } BOOL bResult = TRUE; HDEVINFO hDeviceInfo; SP_DEVINFO_DATA DeviceInfoData; SP_DEVICE_INTERFACE_DATA deviceInterfaceData; PSP_DEVICE_INTERFACE_DETAIL_DATA pInterfaceDetailData = NULL; ULONG requiredLength=0; LPTSTR lpDevicePath = NULL; DWORD index = 0; // Get information about all the installed devices for the specified // device interface class. hDeviceInfo = SetupDiGetClassDevs( &guidDeviceInterface, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); if (hDeviceInfo == INVALID_HANDLE_VALUE) { // ERROR printf("Error SetupDiGetClassDevs: %d.\n", GetLastError()); goto done; } //Enumerate all the device interfaces in the device information set. DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); for (index = 0; SetupDiEnumDeviceInfo(hDeviceInfo, index, &DeviceInfoData); index++) { //Reset for this iteration if (lpDevicePath) { LocalFree(lpDevicePath); } if (pInterfaceDetailData) { LocalFree(pInterfaceDetailData); } deviceInterfaceData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA); //Get information about the device interface. bResult = SetupDiEnumDeviceInterfaces( hDeviceInfo, &DeviceInfoData, &guidDeviceInterface, 0, &deviceInterfaceData); // Check if last item if (GetLastError () == ERROR_NO_MORE_ITEMS) { break; } //Check for some other error if (!bResult) { printf("Error SetupDiEnumDeviceInterfaces: %d.\n", GetLastError()); goto done; } //Interface data is returned in SP_DEVICE_INTERFACE_DETAIL_DATA //which we need to allocate, so we have to call this function twice. //First to get the size so that we know how much to allocate //Second, the actual call with the allocated buffer bResult = SetupDiGetDeviceInterfaceDetail( hDeviceInfo, &deviceInterfaceData, NULL, 0, &requiredLength, NULL); //Check for some other error if (!bResult) { if ((ERROR_INSUFFICIENT_BUFFER==GetLastError()) && (requiredLength>0)) { //we got the size, allocate buffer pInterfaceDetailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA)LocalAlloc(LPTR, requiredLength); if (!pInterfaceDetailData) { // ERROR printf("Error allocating memory for the device detail buffer.\n"); goto done; } } else { printf("Error SetupDiEnumDeviceInterfaces: %d.\n", GetLastError()); goto done; } } //get the interface detailed data pInterfaceDetailData->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); //Now call it with the correct size and allocated buffer bResult = SetupDiGetDeviceInterfaceDetail( hDeviceInfo, &deviceInterfaceData, pInterfaceDetailData, requiredLength, NULL, &DeviceInfoData); //Check for some other error if (!bResult) { printf("Error SetupDiGetDeviceInterfaceDetail: %d.\n", GetLastError()); goto done; } //copy device path size_t nLength = wcslen (pInterfaceDetailData->DevicePath) + 1; lpDevicePath = (TCHAR *) LocalAlloc (LPTR, nLength * sizeof(TCHAR)); StringCchCopy(lpDevicePath, nLength, pInterfaceDetailData->DevicePath); lpDevicePath[nLength-1] = 0; printf("Device path: %s\n", lpDevicePath); } if (!lpDevicePath) { //Error. printf("Error %d.", GetLastError()); goto done; } //Open the device *hDeviceHandle = CreateFile ( lpDevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if (*hDeviceHandle == INVALID_HANDLE_VALUE) { //Error. printf("Error %d.", GetLastError()); goto done; } done: LocalFree(lpDevicePath); LocalFree(pInterfaceDetailData); bResult = SetupDiDestroyDeviceInfoList(hDeviceInfo); return bResult; }
1>------ Erstellen gestartet: Projekt: Test, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>main.c 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(37) : error C2088: '==': Ungültig für struct 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(42) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Typ' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(43) : error C2275: 'HDEVINFO': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\setupapi.h(697): Siehe Deklaration von 'HDEVINFO' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(43) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'hDeviceInfo' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(43) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(44) : error C2275: 'SP_DEVINFO_DATA': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\setupapi.h(708): Siehe Deklaration von 'SP_DEVINFO_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(44) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'DeviceInfoData' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(44) : error C2065: 'DeviceInfoData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(46) : error C2275: 'SP_DEVICE_INTERFACE_DATA': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\setupapi.h(720): Siehe Deklaration von 'SP_DEVICE_INTERFACE_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(46) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'deviceInterfaceData' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(46) : error C2065: 'deviceInterfaceData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(47) : error C2275: 'PSP_DEVICE_INTERFACE_DETAIL_DATA': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\setupapi.h(751): Siehe Deklaration von 'PSP_DEVICE_INTERFACE_DETAIL_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(47) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'pInterfaceDetailData' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(47) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(47) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'int' und 'void *' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(49) : error C2275: 'ULONG': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\windef.h(48): Siehe Deklaration von 'ULONG' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(49) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'requiredLength' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(49) : error C2065: 'requiredLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(51) : error C2275: 'LPTSTR': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\winnt.h(446): Siehe Deklaration von 'LPTSTR' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(51) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'lpDevicePath' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(51) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(51) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'int' und 'void *' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(53) : error C2275: 'DWORD': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\api\windef.h(152): Siehe Deklaration von 'DWORD' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(53) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'index' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(53) : error C2065: 'index': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(57) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(61) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'int' und 'HDEVINFO' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(63) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(63) : warning C4047: '==': Anzahl der Dereferenzierungen bei 'int' und 'HANDLE' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(71) : error C2065: 'DeviceInfoData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(71) : error C2224: Der linke Teil von '.cbSize' muss eine Struktur/Union sein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : error C2065: 'index': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : warning C4022: 'SetupDiEnumDeviceInfo': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : error C2065: 'index': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : error C2065: 'DeviceInfoData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVINFO_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(73) : error C2065: 'index': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(76) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(78) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(78) : warning C4022: 'LocalFree': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(80) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(82) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(82) : warning C4022: 'LocalFree': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(85) : error C2065: 'deviceInterfaceData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(85) : error C2224: Der linke Teil von '.cbSize' muss eine Struktur/Union sein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(88) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(89) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(89) : warning C4022: 'SetupDiEnumDeviceInterfaces': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(90) : error C2065: 'DeviceInfoData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(90) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVINFO_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(93) : error C2065: 'deviceInterfaceData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(93) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVICE_INTERFACE_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(102) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(113) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(114) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(114) : warning C4022: 'SetupDiGetDeviceInterfaceDetailW': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(115) : error C2065: 'deviceInterfaceData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(115) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVICE_INTERFACE_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(117) : error C2065: 'requiredLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(122) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(124) : error C2065: 'requiredLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(127) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(127) : error C2065: 'requiredLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(127) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'int' und 'PSP_DEVICE_INTERFACE_DETAIL_DATA' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(129) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(144) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(144) : error C2223: Der linke Teil von '->cbSize' muss auf eine Struktur/Union zeigen 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(147) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(148) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(148) : warning C4022: 'SetupDiGetDeviceInterfaceDetailW': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(149) : error C2065: 'deviceInterfaceData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(149) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVICE_INTERFACE_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(150) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(150) : warning C4047: 'Funktion': Anzahl der Dereferenzierungen bei 'PSP_DEVICE_INTERFACE_DETAIL_DATA_W' und 'int' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(150) : warning C4024: 'SetupDiGetDeviceInterfaceDetailW': Unterschiedliche Typen für formalen und übergebenen Parameter 3 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(151) : error C2065: 'requiredLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(153) : error C2065: 'DeviceInfoData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(153) : warning C4133: 'Funktion': Inkompatible Typen - von 'int *' zu 'PSP_DEVINFO_DATA' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(156) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2275: 'size_t': Ungültige Verwendung dieses Typs als Ausdruck 1> c:\winddk\7600.16385.1\inc\crt\crtdefs.h(462): Siehe Deklaration von 'size_t' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'nLength' 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2065: 'nLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2223: Der linke Teil von '->DevicePath' muss auf eine Struktur/Union zeigen 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(164) : error C2198: "wcslen": Nicht genügend Argumente für Aufruf. 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(165) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(165) : error C2065: 'nLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(165) : warning C4047: '=': Anzahl der Dereferenzierungen bei 'int' und 'TCHAR *' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : warning C4047: 'Funktion': Anzahl der Dereferenzierungen bei 'STRSAFE_LPWSTR' und 'int' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : warning C4024: 'StringCchCopyW': Unterschiedliche Typen für formalen und übergebenen Parameter 1 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : error C2065: 'nLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : error C2223: Der linke Teil von '->DevicePath' muss auf eine Struktur/Union zeigen 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(166) : error C2198: "StringCchCopyW": Nicht genügend Argumente für Aufruf. 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(167) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(167) : error C2065: 'nLength': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(167) : error C2109: Index erfordert ein Array oder einen Zeigertyp 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(169) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(173) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(182) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(182) : warning C4047: 'Funktion': Anzahl der Dereferenzierungen bei 'LPCWSTR' und 'int' unterschiedlich 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(182) : warning C4024: 'CreateFileW': Unterschiedliche Typen für formalen und übergebenen Parameter 1 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(200) : error C2065: 'lpDevicePath': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(200) : warning C4022: 'LocalFree': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(201) : error C2065: 'pInterfaceDetailData': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(201) : warning C4022: 'LocalFree': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(202) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(202) : error C2065: 'hDeviceInfo': nichtdeklarierter Bezeichner 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(202) : warning C4022: 'SetupDiDestroyDeviceInfoList': Zeigertyp für übergebenen Parameter 1 stimmt nicht mit dem deklarierten Zeigertyp überein 1>c:\documents and settings\stdi3650\my documents\visual studio 2008\projects\test\test\main.c(204) : error C2065: 'bResult': nichtdeklarierter Bezeichner 1>Das Buildprotokoll wurde unter "file://c:\Documents and Settings\stdi3650\My Documents\Visual Studio 2008\Projects\Test\Test\Debug\BuildLog.htm" gespeichert. 1>Test - 85 Fehler, 27 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Im Beispiel ist zu erkennen, dass es sich um Code für einen C++-Compiler handelt, irgendwo wird der Operator "==" dann überladen worden sein, um GUIDs mit "==" vergleichen zu können, da du main.c übersetzen lässt, wird der C-Compiler verwendet, der mit Überladungen nichts anfangen kann.
MfG,
Probe-Nutzer
-
Hm, ich habe aber bei den Projekteinstellungen unter Konfigurationseigenschaften/C/C++/Erweitert/Kompilierungsart "C" eingestellt.
Was muss ich denn noch machen?
L. G.
Steffo
-
c++ einstellen...
-
noop23 schrieb:
c++ einstellen...
YEEEAAAHH!!!
THX!
-
Ich finde es erstaunlich, dass Microsoftler bei Code snippets in der MSDN immer C++ als Programmiersprache angeben.
Die zwei Dinge haben aber ungefähr so viel gemeinsam wie Mensch und Affe.
-
Hi,
ich hab mein Problem übrigens mit libusbx gelöst. Dummerweise kann ich dort den String-Deskriptor eines USB-Devicies nicht auslesen. Es gibt immer einen Overflow, egal ob ich das mit C mache oder mit PyUSB mit libusbx als Backend.Aus der Win Api werd ich irgendwie nicht schlau.
Weiß jemand, wie ich den String Deskriptor eines USB Device über die Win-API auslesen kann?
Unter Linux ist das so einfach ("alles ist eine Datei") ...
Oder ist das vielleicht auch einfacher realisierbar? Vielleicht über die Registry?Danke im Voraus!
L. G.
Steffo
-
Jochen Kalmbach schrieb:
SetupDi*
Schau mal hier:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff540174"The device interface class is identified by passing the device interface GUID that you defined in the INF file."
Kann es sein, dass WinUSB von INF-Dateien und GUID abhängig ist? Würde das nicht gewisse Geräte ausschließen, die ohne INF-Datei installiert wurden (geht das überhaupt)?
-
Hier, guckt euch mal das hier an.
Könnt alles rausnehmen, was ihr nicht braucht. Ist meine Klasse um USB-Geräte zu finden.
Ich benutze nur WinAPI Funktionen. Und schreibt mal nen Feedback ^^