Joystick mit WinApi Funktionen ansprechen
-
Hallo!
Ich habe zu dem Thema im Internet und über die Suche nichts gefunden, was mir weitergeholfen hat (vielleicht auch, weil die Suche kaputt ist).Ich möchte gerne einen USB Joystick mit 12Tasten und 3 Achsen und einem digitalen Steuerkreuz abfragen.
Da ich Direct-Input umgehen will (erscheint mir nach dem ich das Beispiel gesehen habe sehr kompliziert), will ich Windows API Funktionen benutzen.
Dazu habe ich diese Seite im MSDN gefunden:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_joystick_reference.asp
.
Leider funktioniert es noch nicht richtig, ich habe irgendwie ein Zeiger Problem.Die Anzahl der angeschloßenen Joysticks bestimmte ich mit dieser Funktion:
http://support.microsoft.com/default.aspx?scid=kb%3Bde%3B133065 .
Es wird korrekt angezeigt, dass ein Joystick gefunden wurde, der sich an der Adresse(ID) 1 befindet.Zum initialisieren nehme ich:
HANDLE Joystick; joySetCapture(Joystick, JOYSTICKID1, 100, 0); joyReleaseCapture(JOYSTICKID1);Das Problem ist wahrscheinlich die Funktion für die Auswertung:
JOYINFOEX Defs; JOYINFOEX *Daten; double e; Daten=&Defs; Daten->dwFlags=JOY_RETURNALL; Daten->dwSize = 64; joyGetPosEx(JOYSTICKID1,Daten); e=Defs->dwXpos; ´//Error [C++ Fehler] Unit1.cpp(90): E2288 Zeiger auf Struktur auf linker Seite von -> oder von ->* erforderlich* Label1->Caption=FloatToStr(e);Wieso kommt der Fehler und was ist eventuell noch falsch?
Wäre toll, wenn mir jemand helfen könnte, ich bin schon am verzweifeln.MfG
Marcus
-
Defs ist kein Zeiger. Du kannst dir diese extra Daten-variable auch noch sparen.
JOYINFOEX Defs; Defs.dwFlags= JOY_RETURNALL; Defs.dwSize = 64; joyGetPosEx(JOYSTICKID1,&Defs); double e = Defs.dwXpos; //jetzt kein Fehler mehr Label1->Caption=FloatToStr(e);
-
Danke!
Das hat mir echt geholfen, jetzt komme ich endlich weiter.MfG ACU