GetAsyncKeyState Verständnis Problem
-
Ich habe hier einen kleinen Code gefunden mit dem ich etwas Probleme habe:
#include <windows.h> #include <stdio.h> int main() { while(1) { Sleep(10); if(GetAsyncKeyState(VK_SHIFT)==-32767) printf ("Yet\n"); } }Mein Problem liegt genau bei folgender Zeile:
if(GetAsyncKeyState(VK_SHIFT)==-32767)Warum -32767?
-
weil das 0x8001 ist, also bit 15 und bit 0 sind gesetzt. und nun schau mal in die doku für diese funktion.

-
Versteh ich immer noch nicht.
-.-
-
Moinsen,
vllt hilft dir das weiter ...

http://www.google.de/search?q=if+GetAsyncKeyState+VK_SHIFT+-32767&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla
official&client=firefox-a
http://www.rohitab.com/discuss/index.php?showtopic=17924&hl=GetAsyncKeyStateGruß
-
Wie fricky schon schrieb, es bedeute, dass das erste Bit gesetzt ist und heisst nichts anderes als
wenn VK_SHIFT gedrückt
Gruß
-
guck doch mal
was ist denn 32767 für eine zahl?
genau 2 hoch 15 -1
32767 ist die grösse eines datentyps (short oder byte oder so kA)
-
Skym0sh0 schrieb:
was ist denn 32767 für eine zahl?
genau 2 hoch 15 -1er meint aber **-**32767

-
OK vielen dank ich habe jetzt alles super verstanden.

Ich habe da noch ein Problem das pass zwar nicht so zum Thema aba egal:typedef struct KEYS { code; char outputA[5]; char outputB[5]; char outputC[5]; }KEYS; KEYS keys = { {0x41,"a","A",0} };Warum erhalte ich da so viele Fehler?
main.c:14: warning: braces around scalar initializer
main.c:14: warning: (near initialization forkeys.code') main.c:14: warning: excess elements in scalar initializer main.c:14: warning: (near initialization forkeys.code')
main.c:14: warning: excess elements in scalar initializer
main.c:14: warning: (near initialization forkeys.code') main.c:14: warning: excess elements in scalar initializer main.c:14: warning: (near initialization forkeys.code')
-
sind doch nur warnungen^^
KEYS keys = { //<-Weglassen {0x41,"a","A",0} } //<- Weglassen;
hier kannst du die zweite kammerung weg lassen, da keys keine arrray ist.
typedef struct KEYS //<-- Auch weglassen { code; char outputA[5]; char outputB[5]; char outputC[5]; }KEYS;was ist code für ein typ?
-
int code;