Benutzer mit den meisten Antworten
C# .NET Assembly mit WindowsForm, UserControl -- C++; MFC Applikation

Frage
-
Hallo,
ich erstelle momentan eine .NET Assembly in C#. Wenn das erfolgreich läuft soll dieses Modul in Bestandssoftware geschrieben in C++, MFC VS2005 integriert werden.
Gibt es hierzu Beispiele? Ist so etwas möglich und denkbar. Müsste ich jetzt schon was beachten?
Danke für Tipps
C# (DLL) mit UserForm in MFC,C++ einbinden
Alternativ, ungern
C#(DLL) mit UserForm --- Socket Connector / Adapter ---- MDF/C++
zu fehleranfällig finde ich.
Andreas
Antworten
-
Andreas
nochmals, mit MFC alleine kann man nicht direkt C# aufrufen, sondern man muss in der MFC die COM-Technologie beherrschen (was kein Thema für dieses Forum ist)
und dann auf Seite C# ebenso zuätzliche Schritte vornehmen:
Interoperation mit nicht verwaltetem Code
http://msdn.microsoft.com/de-de/library/sd10k43k.aspxVerfügbarmachen von .NET Framework-Komponenten in COM
http://msdn.microsoft.com/de-de/library/zsfww439.aspx
http://www.codeproject.com/KB/COM/com_object_in_c_.aspx
http://www.codeproject.com/KB/atl/ComWarpperForDotNet.aspx
http://www.codeproject.com/KB/miscctrl/exposingdotnetcontrols.aspx
Und C++/CLI
Interoperabilität von systemeigenem Code und .NET
http://msdn.microsoft.com/de-de/library/zbz07712.aspx- Als Antwort markiert Andreas Bauer2 Samstag, 5. Februar 2011 07:26
Alle Antworten
-
Hallo Andreas
nur indirekt möglich - hierzu gibt es einerseits C++/CLI (im Visual Studio C++ 2008/2010 dabei), womit man managed und unmanaged Code 'mischen' kann. Andererseits klassisches COM-Interop, also COM-Komponente erstellen (entweder der C# Seite oder in MFC).
So oder so ist etliches an Know-How nötig, MSDN liefert mehr/alles.
Technisch als weitere Variante ggf noch (ggf Umkehrung der Architektur), die MFC-Seite als klassische/native Win32 DLL mit API ausbilden und in C# per PInvoke (DllImport) ansprechen.
Dass man hier auch den noch grösseren Umweg über Sockets (uva) machen kann ist klar, aber fragwürdig.
Bedenke unbedingt, dass Aufwand für die Fehlersuche bei all den obigen Technologie-Mixturen massiv steigt!
Eine wirklich saubere Lösung ist nur eine reine .NET - Lösung. -
Bedenke unbedingt, dass Aufwand für die Fehlersuche bei all den obigen Technologie-Mixturen massiv steigt!
Eine wirklich saubere Lösung ist nur eine reine .NET - Lösung.
Hallo,glaube ich Dir, geht nicht, wäre ja eine Neuentwicklung der restlichen Funktionen.
Gibt es nicht irgendwo ein Beispiel.
So dass ich von MFC Funktionen aus C# aufrugen kann.
Grüße Andreas
-
Andreas
nochmals, mit MFC alleine kann man nicht direkt C# aufrufen, sondern man muss in der MFC die COM-Technologie beherrschen (was kein Thema für dieses Forum ist)
und dann auf Seite C# ebenso zuätzliche Schritte vornehmen:
Interoperation mit nicht verwaltetem Code
http://msdn.microsoft.com/de-de/library/sd10k43k.aspxVerfügbarmachen von .NET Framework-Komponenten in COM
http://msdn.microsoft.com/de-de/library/zsfww439.aspx
http://www.codeproject.com/KB/COM/com_object_in_c_.aspx
http://www.codeproject.com/KB/atl/ComWarpperForDotNet.aspx
http://www.codeproject.com/KB/miscctrl/exposingdotnetcontrols.aspx
Und C++/CLI
Interoperabilität von systemeigenem Code und .NET
http://msdn.microsoft.com/de-de/library/zbz07712.aspx- Als Antwort markiert Andreas Bauer2 Samstag, 5. Februar 2011 07:26
-
nochmals, mit MFC alleine kann man nicht direkt C# aufrufen, sondern man muss in der MFC die COM-Technologie beherrschen (was kein Thema für dieses Forum ist)
und dann auf Seite C# ebenso zuätzliche Schritte vornehmen:
Interoperation mit nicht verwaltetem Code
http://msdn.microsoft.com/de-de/library/sd10k43k.aspxHallo Thomas,
ok und Danke.
Grüße Andreas