Keycodes mittels Inline-Assembler

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Keycodes mittels Inline-Assembler

Beitrag von nufan » So Feb 08, 2009 8:01 pm

cloidnerux hat geschrieben:Windows besitz DirectX, eine Element davon ist DirectInput.
Und wenn ich mich recht entsinne gibt es DirectX nur für Windows...

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Keycodes mittels Inline-Assembler

Beitrag von cloidnerux » So Feb 08, 2009 8:06 pm

Und wenn ich mich recht entsinne gibt es DirectX nur für Windows...
Wenn ich mich recht ensinne gibt es getch() nur für Windows.


Es war eine möglichkeit, keine Lösung.
Ich würde dir raten SDL zu nehmen und gut ist.
Wir können zwar noch Stunden weiter Diskutieren, das bringt aber nichts.
Ich hab sonst keine Idee, weid u dein Problem lösen kannst.
Desshalb wünsche cih dir noch viel spaß und ziehe mich dann aus diesem Thread zurück.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Keycodes mittels Inline-Assembler

Beitrag von nufan » So Feb 08, 2009 8:13 pm

cloidnerux hat geschrieben:Wenn ich mich recht ensinne gibt es getch() nur für Windows.
Stimmt, und wie schon gesagt sehe ich getch nicht als Alternative.
cloidnerux hat geschrieben:Desshalb wünsche cih dir noch viel spaß und ziehe mich dann aus diesem Thread zurück.
Werde ich haben, danke für die Hilfe.

So, ich hoffe, dass die schlummernden Assembler-Freaks da draußen auf meine ursprüngliche Idee einsteigen :)

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Keycodes mittels Inline-Assembler

Beitrag von Kerli » So Feb 08, 2009 8:17 pm

cloidnerux hat geschrieben:Windows besitz DirectX, eine Element davon ist DirectInput.
Über DirectInput bekommste die Scancodes die du mit Macros nutzen kannst.
Da dani93 anscheinend ein Programm in der Konsole schreibt ist DirectInput wohl ziemlicher Overkill, und da sein Programm auch plattformübergreifend funktionieren sollte noch weniger geeignet.

Da es so eine Möglichkeit nicht wirklich plattformübergreifend gibt muss man wohl zwei verschiedene Funktionen zum Erhalten der gedrückten Tasten mit define's verwenden. Entweder man sucht sich jetzt unter Windows und unter Linux die jeweils passenden Funktionen oder man greift auf vorhanden Bibliothek wie ncurses die es auch so ähnlich für Windows gibt.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Keycodes mittels Inline-Assembler

Beitrag von nufan » So Feb 08, 2009 8:21 pm

Kerli hat geschrieben:Entweder man sucht sich jetzt unter Windows und unter Linux die jeweils passenden Funktionen oder man greift auf vorhanden Bibliothek wie ncurses die es auch so ähnlich für Windows gibt.
Umpf... mit ncurses und conio.h hab ich mich schon mal gespielt (siehe hier)... das lief irgendwie nicht so toll...

Ist meine Idee mit dem Inline-Assembler wirklich komplett zum Vergessen?

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Keycodes mittels Inline-Assembler

Beitrag von Kerli » So Feb 08, 2009 11:14 pm

dani93 hat geschrieben:Umpf... mit ncurses und conio.h hab ich mich schon mal gespielt (siehe hier)... das lief irgendwie nicht so toll...
Dazu kann ich nichts sagen, weil ich es noch nie versucht habe. Ich bin nämlich recht schnell weg von den Konsolenanwendungen gegangen. Irgendwann hab ich einmal so etwas gemacht aber das war glaub ich nur unter Windows lauffähig. Jetzt müsste man nur noch eine entsprechende Linuxfunktion finden und dann per Kompilerswitch die richtige Funktion wählen. Und dazu könnte man sich zum Beispiel in der ncurses Bibliothek Anregungen holen.
dani93 hat geschrieben: Ist meine Idee mit dem Inline-Assembler wirklich komplett zum Vergessen?
Ja. Weil das ist noch plattformunabhängiger, da du dabei auch noch die verschiedenen Prozessorarchitekturen beachten musst. Und wenn man für eine Funktion auf eine andere Programmiersprache wechseln muss sollte das einem schon zu denken geben, ob man es nicht auch anders machen kann.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Keycodes mittels Inline-Assembler

Beitrag von nufan » Mo Feb 09, 2009 12:04 am

Kerli hat geschrieben:
dani93 hat geschrieben: Ist meine Idee mit dem Inline-Assembler wirklich komplett zum Vergessen?
Ja. Weil das ist noch plattformunabhängiger, da du dabei auch noch die verschiedenen Prozessorarchitekturen beachten musst. Und wenn man für eine Funktion auf eine andere Programmiersprache wechseln muss sollte das einem schon zu denken geben, ob man es nicht auch anders machen kann.
Ich hab gerade versucht in der Konsole SDL-Events abzufangen, was erwartungsgemäß nicht funktionierte.

Ich werde noch ein bisschen herumspielen. Falls es nicht anders geht muss ich eben wie bei clrscr eine Funktion mit Präprozessor die je nach OS die richtige Funktion wählt schreiben.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Keycodes mittels Inline-Assembler

Beitrag von Xin » Mo Feb 09, 2009 12:37 am

Ich schließe mich bis auf weiteres der NCurses-Theorie an.

Ansonsten... schreib 'ne wxWidgets oder GTK Anwendung und rufe diese von der Konsole aus auf ;-)

Bitte beachte auch, dass Keycodes nichtmals auf einem OS korrekt ablaufen: Sobald jemand ein anderes Tastenlayout verwendet geht die Verwirrung los.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Keycodes mittels Inline-Assembler

Beitrag von nufan » Di Feb 10, 2009 8:52 pm

Xin hat geschrieben:Bitte beachte auch, dass Keycodes nichtmals auf einem OS korrekt ablaufen: Sobald jemand ein anderes Tastenlayout verwendet geht die Verwirrung los.
Ich hab heute einen Freund mein getch-Programm testen lassen und es funktionierte ohne Probleme. Ob er das selbe Layout hat, kann ich aber nicht sagen.


Gestern blätterte ich durch mein SDL-Buch - und siehe da - keycodes.c. Fertig geschrieben muss nur noch kompiliert werden.
Nur ist das Problem genau das Gegenteil von getch - Linux und X Header... womit ich wieder am Anfang wäre.

Ich werde wohl eine SDL- und eine getch- Version schreiben, dann kanns nicht falsch sein :)
Ein Nachteil von SDL ist jedoch, dass ich das Fenster brauche. Sinn der Pfeiltasten soll es sein durch ein Dokument zu "scrollen" (also den Ausgabepunkt nach oben/unten versetzen). Dann müsste ich den ganzen Text zeilenweise rendern...

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Keycodes mittels Inline-Assembler

Beitrag von Xin » Mi Feb 11, 2009 12:02 am

dani93 hat geschrieben:
Xin hat geschrieben:Bitte beachte auch, dass Keycodes nichtmals auf einem OS korrekt ablaufen: Sobald jemand ein anderes Tastenlayout verwendet geht die Verwirrung los.
Ich hab heute einen Freund mein getch-Programm testen lassen und es funktionierte ohne Probleme. Ob er das selbe Layout hat, kann ich aber nicht sagen.
Ich vermute Deine Freund sind deutschsprachig und haben deutschsprachige Layouts.
dani93 hat geschrieben:Gestern blätterte ich durch mein SDL-Buch
Welches ist das?ch wieder am Anfang wäre.
dani93 hat geschrieben:Ich werde wohl eine SDL- und eine getch- Version schreiben, dann kanns nicht falsch sein :)
Ein Nachteil von SDL ist jedoch, dass ich das Fenster brauche. Sinn der Pfeiltasten soll es sein durch ein Dokument zu "scrollen" (also den Ausgabepunkt nach oben/unten versetzen). Dann müsste ich den ganzen Text zeilenweise rendern...
Portablität ist immer ein Problem - aber Programme ohne Fenster sind heutzutage auch eher selten.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten