Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?
Ich war nicht wirklich sicher, ob es sich um Linux handelt. Unter Windows sind die als veraltet markiert (nicht Unicode fähig).
https://msdn.microsoft.com/de-de/library/ms235446.aspx
für welche Programmierplattform?
auf Windows-Plattformen gibt es (normalerweise ?) für kbhit() und getch() <conio.h>, das gibt es aber nicht auf Linux-Systemen. (Für Linux (Raspbian/Debian) benutze ich einen selbstgestrickten Ersatz, der halbwegs genauso funktioniert - wenn dich das interessiert...? )
Zuerst sollte das OS und der C++ Dialekt bekannt sein um da was sagen zu können.
Wenn man ganz in die Hardware rein geht liest man den Tastaturpuffer direkt aus.
Etwas weiter oben ist das auslesen der Tastatur Scancodes mit den Keystroke Messages.
Bei Windows wäre das WM_KEYDOWN aus der Win32.dll.
Man greift also direkt auf Betriebssystemfunktionen zu und nutzt keine darauf aufbauenden Befehle der Programmiersprache.
Wenn man sich damit näher befassen will, sollte man sich Infos zur API Programmierung des jeweiligen OS ansehen.
Für Linux schau mal hier:
http://forums.codeguru.com/showthrea...d-control-keys
Für Windows:
https://msdn.microsoft.com/de-de/lib...=vs.85%29.aspx
Scancodes:
https://msdn.microsoft.com/en-us/lib...=vs.60%29.aspx
den Code-Guru Code habe ich auf Raspbian Jessie probiert, funktioniert aber nicht.
Meiner aber schon.
Aber, wie du ganz richtig schriebst, lass erst den TO mal antworten, welches OS er benutzt.
Ohne ihn dann doch vorher wieder mit Links zu überschütten.![]()
Ja, deswegen bin ich da auch vorsichtig.
Oh oh, vorsicht. Nicht einfach nur suchen und verlinken.
Eine WM_.... ist eine Window Message.
das geht nur in GUI-Anwendungen mit einer Messageloop. Er hat aber ein Konsolenfenster (wenn er auf Windows ist).Posted to the window with the keyboard focus ...
Ein anderes Problem unter Windows wäre, getch (bzw. _getch) liefern ein char, der Standardzeichentyp bei (halbwegs) aktuellen Windows Entwicklungsumgebungen ist aber wchar_t (UTF-16), das kann dann Probleme bei der Weiterverarbeitung machen.
Geändert von Mxt (23.01.2016 um 10:16 Uhr)
Lesezeichen