000
07.12.2005, 15:29 Uhr
~maxpower24
Gast
|
Hi,
eine kleine Spezialfrage - vielleicht gibt es ja hier jemanden, der Ahnung von MFC und Corba hat und der mir helfen kann.
Also, ich will einen kleinen CORBA-HelloWorld-Server mit GUI schreiben (naja, eigentlich soll er später auch als client fungieren, dass ist aber nicht so wichtig). Wer schon mal was mit CORBA gemacht hat, weiß, dass der mainthread nach dem Aufruf von orb.run() blockiert, sodass eben auch die GUI nicht mehr reagiert!!!! (das hab ich ausprobiert!)
Meine Idee war dann, einen Thread zu starten, in dem die Corba-initialisierung inklusive orb.run() vorgenommen wird. Das funktioniert aber irgendwie nicht - er läuft zwar in den Thread, der ORB published noch seine Referenz und auch die GUI reagiert jetzt, aber der ORB hört schlichtweg nicht, wenn ein Client ihn ruft....
==>weiß jemand, woran das liegen könnte oder hat jemand ne Idee wie man einen CORBA-Server mit GUI baut???
!!!Ich habe in den OMG spezifikationen gelesen, dass orb.run() immer im mainthread ausgeführt werden muß!!! Aber der MainThread in einer MFC-Application ist doch immer der Benutzeroberflächenthread von CWinApp...ich vermute mal, dass in den Tiefen von Windows eine Instanz von CWinApp als Thread gestartet wird, sodass dass Prgramm dann startet....
Könnte es gelingen, den Spiess umzudrehen?? Könnte man vielleicht anstelle von CWinApp einen anderen Thread starten, der den ORB initialisiert und dann CWinApp als Thread startet??
Mit anderen Worten, man müßte es schaffen, dass der ORB initialisiert ist, bevor das ganze MFC-Zeugs losgeht....hat jemand noch ne Idee??...BESTEN DANK |