Enumeracja urządzeń USB

Enumeracja urządzeń USB
0

Staram się napisać kod, który wyświetli wstępną enumeracje istniejących urządzeń USB, a właściwie zrozumieć jak działa pisząc w oparciu o książkę.

Kopiuj
#include <iostream>
#include<windows.h>
#include<Setupapi.h>
using namespace std;

HMODULE hHidLib;
HDEVINFO deviceInfoSet;
GUID ClassGuid;
SP_DEVINFO_DATA deviceInfoData;

int main()
{
    hHidLib = LoadLibrary("C:\\Windows\\system32\\HID.DLL");
    if(!hHidLib){cout<<"Blad 1"<<endl; return 0;}

    void (__stdcall *HidD_GetHidGuid)(OUT LPGUID HidGuid);
    (FARPROC&) HidD_GetHidGuid = GetProcAddress(hHidLib,"HidD_GetHidGuid");

    HidD_GetHidGuid(&ClassGuid);

    deviceInfoSet = SetupDiGetClassDevs(&ClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);
    if(deviceInfoSet==INVALID_HANDLE_VALUE){cout<<"Błąd 2"; return 0;}

    return 0;
}

Niestety przy próbie kompilacji zwraca "undefined reference to _imp__SetupDiGetClassDevsA@16"
Korzystam z programu CodeBlocks. Szukałem w google, ale nic konkretnego nie znalazłem. Jedynie, że może to być wina kompilatora, ale w Dev C++ też się nie kompiluje.

edytowany 1x, ostatnio: Ktos
0

Jak się okazało w codeblocks'ie trzeba było dodać linker biblioteki setupapi. W qt był problem z wczytaniem biblioteki ponieważ nie ma Loadlibrary() a nie znam środowiska qt.

M1
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:165
0

@Artag w Qt jest wszystko :) http://doc.qt.io/qt-5/qlibrary.html

0

A można wiedzieć na podstawie jakiej książki to piszesz?

M1
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:165
0

Dokumentacja Qt

0

musisz zalinkować statycznie setupapi.lib do projektu

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.