Laden...

Mix C++ und C#

Erstellt von uzzman1982 vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.147 Views
U
uzzman1982 Themenstarter:in
11 Beiträge seit 2006
vor 16 Jahren
Mix C++ und C#

Hallo,

ich habe die Aufgabe eine C#-Application zu erstellen. In diese Application muss auch Tool integriert werden, das C++ basiert ist. Ich könnte die Funktionalitäten des Tools in eine dll integrieren! Nur kann ich diese dll dann ohne Probleme in einer C# Anwendung verwenden? Was muss ich beachten?

Vielen Dank,
uzz

S
8.746 Beiträge seit 2005
vor 16 Jahren

Problemlos wird es nur wenn:

  1. keine C++-Klassen exportiert werden (also nur Funktionen)
  2. die DLL hinsichtlich Interoperabilität angelegt ist. Das bedeutet primär auf die Rückgabe von Speicher zu verzichten bzw. eine explizite Speicherfreigabefunktion anzubieten. Anders formuliert: Die Nutzung der DLL ist unabhängig von der Runtime, mit der die DLL erstellt wurde.
F
10.010 Beiträge seit 2004
vor 16 Jahren

Ist das Managed C++ oder "normales"?

Bei normalen C++ kannst Du keine Klassen benutze, Du musst alles C Wrapper schreiben.

369 Beiträge seit 2006
vor 16 Jahren

Du hast zwei Möglichkeiten:

  1. Du exportierst Funktionen oder COM-Klassen, die du mittels P/Invoke bzw. COM-Interop in deiner .Net (C#) Anwendung verwendest.

  2. Du verwendest C++/CLI. Damit kannst du mixed mode assemblies erstellen, die du auch unter .Net verfügbar machen kannst. Leider lädt die MSDN-Webpage bei mir gerade sehr langsam, du findest jedoch näheres zu dem Thema, wenn du im Index der offline Hilfe nach cl.exe suchst und dann "Common Language Runtime (Option)" auswählst.

Ergänzung: C++/CLI ist nicht Managed C++ wie es mit .Net 1 eingeführt wurde. C++/CLI gibt es erst seit .Net 2.