PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schlimmes Programmierproblem bei C++ .net


SynchroM
2004-12-03, 18:09:57
Hallo!
ich hab in diesem (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=184313) Thread schon mal gefragt, wegen eines Designeproblems. Es ist zwar unhöflich gleich einen neuen Thread zu eröffnen aber jetzt hat sich das ganze ausgeweitet und mein Problem ist echt dringend geworden.

Also es geht darum:
Eine große Klasse ist vollständig in Standart -C++ programmiert und hat nur direkte WinApi Aufrufe, damit sie portabel bleibt.
Eine zweite Klasse ist in MC++ (__gc...) geschrieben. Sie erzeugt das Windows Form mit Hilfe des .net FW.
Jetzt will ich dass die erstgenannte Klasse eine Ausgabe auf das Windows-Form machen kann. Und egal wie ich mich anstelle, es gelingt nicht.
Das Problem ist, dass ich die form- Klasse nicht in der nicht-managed Klasse instanzieren darf. (Also z.B. kein Zeiger auf ein Objekt der Klasse speichern.)
Wenn ich eine Abstrakte Klasse als Interface benutzen will, dann muss diese managed code benutzen, damit die form- klasse von ihr erben kann. Und dann hab ich wieder eine Managed Klasse, die ich nicht instanzieren darf ;(

Wie soll ich jetzt der form klasse sagen das sie was auf den Bildschirm schreiben soll?

Wie können managed-Code Klassen und unmannaged-code Klassen kommunizieren?

Vielen Dank für eure Hilfe!

Trap
2004-12-03, 19:05:02
Ich hab nie managed C++ programmiert, aber ich würd callback prozeduren vorschlagen.

Trap
2004-12-03, 23:47:49
Vielleicht hilft das weiter:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconinteroperatingwithunmanagedcode.asp

Gast
2004-12-04, 13:54:01
Ich hab nie managed C++ programmiert, aber ich würd callback prozeduren vorschlagen.

hmmm so wie ich callbacks verstanden habe, sind das einfach zeiger auf Funktionen die ich zb beim initalisieren übergebe.
Das geht aber nicht. denn in meinem Fall wähe die Funktion ja eine Methode der Form Klasse. Um die aurufen zu können brauch ich aber auch den Zeiger auf das Objekt selbst.

Trap
2004-12-04, 14:33:20
Callbacks gehen anscheinend:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconusingcallbackfunctions.asp

Trap
2004-12-04, 14:43:26
Pointer gehen auch:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcManagedExtensionsSpec_16.asp