C++ DLL's (erstellt in VS 6.0) in C# (.net) benutzen
-
Ich möchte eine Application in C# schreiben, die Dll's - geschrieben in C++ mit VS 6.0 - einbindet. Geht das überhaupt und gibt es dabei Einschränkungen?
-
Nicht so ohne weiteres. Da C++ leider keinen einheitlichen Mechanismus/Format bietet, Klassen für andere Programmiersprachen zu exportieren sind. Leider kocht da jeder Komilerhersteller sein eigenes Süppchen.
Du kannst eine puren C Wrapper schreiben der deine Klassen kapselt. Und dann mit pinvoke importieren. Ist aber recht umständlich. Außer du schreibst ein Programm das diese Wrapper automatisch generiert.
Eine bessere Möglichkeit ist deine C++ Klassen im Managed C++ zu kompilieren. MS hat die Komandozeilenversion von MS C++ 7.0 zum Download frei gegeben. Deinen Code musst du allerdings anpassen, dafür aber sollte es dann möglich sein, deine auf managed getrimmte Klasse ohne Probleme in einzubinden.