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ę.

#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.

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.

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?

0

Dokumentacja Qt

0

musisz zalinkować statycznie setupapi.lib do projektu

1 użytkowników online, w tym zalogowanych: 0, gości: 1