Announcement

Collapse
No announcement yet.

HID USB zugreifen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HID USB zugreifen

    Hallo alle zusammen,

    ich möchte auf einen USB-HID- Port zugreifen.
    Ich mache dieses mit dem C++Builder 6.
    Nach meinen Informationen geht es in den folgenden Schritten:
    1. GUID aller HID's ermitteln mit HidD_GetHidGuid
    2. Aufruf von SetupDiGetClassDevs
    3. SetupDiEnumDeviceInterfaces
    4. SetupDiGetDeviceInterfaceDetail
    Danach erfolgt das Handeln der Schnittstelle wie vom seriellen Port bekannt mit CreateFile und ReadFile/WriteFile.
    Allerdings erhalte ich beim Aufruf der Funktion HidD_GetHidGuid(GUID) die Fehlermeldung "Zugriffsverletzung bei Adresse 68D913F9 in Modul hid.dll. Schreiben von Adresse 0000 0002.
    Die Exception EAccessViolation gibt diese Meldung zurück.
    Auszug aus dem Quelltext:

    //Zeiger auf die Funktion deklarieren:

    typedef void __stdcall THid(GUID);

    HINSTANCE dllHid;

    //im Konstruktor des Formulares:

    dllHid = LoadLibrary("hid.dll");

    //in einer Ereignisbehandlung OnClick:

    GUID g;

    THid *myHid;

    myHid = (THid*)
    GetProcAddress(dllHid,"HidD_GetHidGuid");

    myHid(g);

    Auch ein Aufruf der Funktion HidD_Hello() liefert eine vergleichbare Fehlermeldung, wobei ich aber nicht weiß, ob noch weitere Parameter hinzukommen.
    Das Betriebssystem ist Windows XP.
    Da ich als erstes die GUID der Hid-Schnittstellen brauche, komme ich nicht weiter.
    Es wäre schön, wenn jemand hierzu Tipps hätte.

    Ulli

  • #2
    Einen Schritt bin ich schon weitergekommen.
    Wenn man

    myHid(&g);

    aufruft, funktioniert es gut.
    Nun habe ich allerdings das Problem, daß es bei

    SetupDiEnumInterfaces hakt.

    Es wird nur einmal ausgelesen, obwohl 2 USB-Geräte angeschlossen sind.
    Vielleicht hat ja jemand eine Idee.

    Ull

    Comment

    Working...
    X