Konsolenanwendung <-> Threads
-
Funktioniert - soweit so gut. Doch wie kann ich bei GetMessage() die Messages eines Child-Fensters bekommen? Muss ich bei "hwnd" das HWND des Child-Fensters übergeben?
Das funktioniert noch nicht so recht :(.
MfG SideWinder
-
Nimm doch einfach NULL - dann holt er sich alle Nachrichten
-
flenders schrieb:
Nimm doch einfach NULL - dann holt er sich alle Nachrichten
Habe ich - aber das Problem ist ich weiß nicht in welchen Thread meine Variable Console gehört.
Das erste Mal benützt wird sie schließlich in main() alsow gehört sie wohl auch zu diesem Thread. Das heißt, dass dieses Fenster in diesem Thread erstellt wird, was wiederrum heißt ich kann in WinMain() gar nicht die richtigen Nachrichten bekommen, weil GetMessage() nur Nachrichten des jetzigen Threads abholen kann.
Oder habe ich da wiedermal etwas übersehen?
MfG SideWinder
-
Bitte vergiss dein Vorhaben - das wird nichts.
-
=== schrieb:
Bitte vergiss dein Vorhaben - das wird nichts.
Danke wie aufmunternd. Ich hoffe dennoch, dass dieses Projekt etwas wird. Sobald es nun endlich funktioniert kann ich es optimieren. Immerhin ist es nur noch ein kleiner Schritt zum funktionsfähgien Programm ;).
MfG SideWinder
-
Durch Logging habe ich nun herausgefunden, das er meine WinMain() erst gar nicht aufruft
Statt dessen ruft er als erstes die Funktion wmain() im vom User definierten Hauptprogramm auf - es ist aber sicher eine Win32-Applikation und keine Konsolenapplikation.
Was habe ich da schon wieder falsch gemacht?
MfG SideWinder
-
Dein main-Überschreiben-Vorhaben ist auch irgendwie daneben. Mach einfach eine Funktion InitSidewindersConsole() die der Benutzer dann einmal nach dem Eintritt in main aufruft und gut.
Und wieso du SetWindowLong nicht verwenden kannst versteh ich nicht.. Du solltest es, wie gesagt, besser mit Hooks machen.. aber wie du meinst.
-
DrGreenthumb schrieb:
Dein main-Überschreiben-Vorhaben ist auch irgendwie daneben. Mach einfach eine Funktion InitSidewindersConsole() die der Benutzer dann einmal nach dem Eintritt in main aufruft und gut.
Und wieso du SetWindowLong nicht verwenden kannst versteh ich nicht.. Du solltest es, wie gesagt, besser mit Hooks machen.. aber wie du meinst.
Das Hauptfenster der Anwendung ist und bleibt die Konsole, zuerst wird eine Konsole alloziert und danach ein Fenster als Child - Grund: Ich muss mich nicht um so Dinge wie Umleiten des Konsolenpuffers, Größe der Konsole, Aussehen der Konsole, etc. kümmern. Doch in der Konsole habe ich keinen Zugriff auf SetWindowLong() - gibt jedesmal einen Error - siehe anderer Thread von mir "Wnd: ..."
InitConsole() als Funktion klingt spannend, ich muss dort einfach die Message-Schleife als Thread starten. *Versuchen geh*
MfG SideWinder
-
Ich raffs nicht, obwohl ich folgendes stehen habe:
con::console& Console = con::console::get_instance();
Wird get_instance() NIE aufgerufen! Ich logge in der get_instance() wieder mit meiner Log-Klasse mit, und: Sie wird nicht mit aufgerufen.
Warum denn das?
MfG SideWinder
-
Hier mal meine Dateien:
[url=http://www.sidewindershome.net\cache\curproject\console2.h.html]console2.h[/url]
[url=http://www.sidewindershome.net\cache\curproject\console2.cpp.html]console2.cpp[/url]Wahrscheinlich habe ich wieder irgendwo einen Idiotenfehler :(.
MfG SideWinder
-
du kannst ja noch nicht mal richtig verlinken
http://www.sidewindershome.net/cache/curproject/console2.h.html
http://www.sidewindershome.net/cache/curproject/console2.cpp.html
-
Was habe ich falsch verlinkt? Bei mir funktionieren meine Links einwandfrei.
MfG SideWinder