Wir haben mehrere große MFC-Anwendungen, die derzeit ein COM-Objekt aufrufen, um einen komplexen Dialog zu erzeugen. Wir möchten den Dialog in die Anwendungen integrieren - wir wollen nicht weiter ein COM-Objekt verwenden.Wie kann ich ein .NET-Formular von einer MFC-Anwendung aufrufen?
Ich untersuche die Möglichkeit, den Dialog in .NET als ein separates Projekt zu erstellen (Windows-Formulare, nicht WPF) und ein zweites C++/CLI-Projekt bereitzustellen, das es aufruft und aus normalen C++ - Code aufgerufen werden kann. Diese Struktur ist so, dass die verschiedenen Anwendungen, die den Dialog enthalten müssen, nur die Projekte in ihren Lösungen aufnehmen können. (Die Apps sind Legacy-Apps, deren Umschreiben nicht möglich ist - wir verschieben sie langsam nach .NET, aber dies ist ein mehrjähriges Projekt. Die Konvertierung der Apps in C++/CLI ist keine Option.)
Ich habe dies erstellt und getestet von einer Modellanwendung, aber bis jetzt kann ich es nicht in der einfachsten der großen Apps arbeiten, und basierend auf einigen Dingen, die ich gelesen habe, fange ich an bezweifle, dass es möglich ist. (Siehe this link, besonders. Ich bin mir der this Stackoverflow question bewusst, aber es scheint nicht relevant zu sein.)
So. Ist das überhaupt möglich? Irgendwelche Vorschläge zum weiteren Vorgehen?
Wir haben bereits eine C++ - basierte COM-Komponente. Der Zweck dieses Projekts ist es, die Notwendigkeit von COM zu beseitigen. – mlo
Ich bekomme Fehler in der OLE-Initialisierung, bevor die Ausführung überhaupt in die Nähe des betreffenden Codes kommt. Das Googlen dieses Fehlers führte mich zum ersten Link. – mlo