Laden...

C# dll in c++ Einbinden

Erstellt von Fragender vor 18 Jahren Letzter Beitrag vor 18 Jahren 7.743 Views
F
Fragender Themenstarter:in
34 Beiträge seit 2004
vor 18 Jahren
C# dll in c++ Einbinden

Hallo Leute,

ich habe in C# eine DLL geschrieben und muss die nun in c++ einbinden. Gibt es dazu eine Möglichkeit. Eigentlich benötigt man ja einen Header, um in c++ eine DLL einzubinden.

Es wäre schön, wenn jemand von Euch weiß, wie man diesbezüglich vorgeht.

MfG

Frank

M
49 Beiträge seit 2005
vor 18 Jahren

Hallo.

Ich bin kein C++ oder Interop Profi, aber soviel ich gehört habe kommt es darauf an, um was für einen Compiler es sich dabei handelt. Ist es Visual Studio 2003 (C++) selbst, gibt es zwei Wege, IJW (It-Just-Works) eine Art C++ Interop und Alternativ COM. Einen direkten Weg gibt es nicht, was mit dem IL-Code zusammenhängt.

Andere C++ Compiler bzw. bestehende Programme können wohl soweit ich gehört habe lediglich via COM mit Managed Code kommunizieren.

Als groben Überblick kann die eine Webcast Reihe bei Microsoft empfehlen, eine der Folgen beschäftigt sich mit API Design in Zusammenhang mit COM und C++ Interop.

Zu finden unter
http://msdn.microsoft.com/netframework/programming/classlibraries/understandinginteroperability/

(Die anderen Webcasts in dieser Reihe sind übrigens auch sehenswert, auch wenn vieles in den Guidlines zur .NET Programmierung nachzulesen ist. Aber hier und dort gibt auch für Profis die eine oder andere nützliche Info.)

Ansonsten gibt es sicherlich Tonnen an Informationen zum Thema Interop im MSDN. Denn schließlich muß auch Microsoft seine bestehende Unmanaged Software (Office, Exchange, Windows, IIS, u.s.w.) weiterhin mit der Managed Welt verbinden. Und es wird wohl noch etwas Dauern bis es ein Managed Office oder Managed Exchange oder Managed Windows geben wird (nun ja WinFX/Longhorn läßt schonmal Grüßen.)

-Martin Ehrlich


Martin Ehrlich

F
Fragender Themenstarter:in
34 Beiträge seit 2004
vor 18 Jahren

Danke für die Antwort,

leider kann ich damit nicht viel anfangen.

Gibt es eventuell ein Dokumentation darüber, die genau beschreibt wie ich zu verfahren habe.

Danke,

Frank

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Fragender,

sorry, aber den du mit dieser ausführlichen Antwort nichts anfangen kannst, machst du es dir m.E. zu leicht, zumal dort beschrieben ist, wo du weitere Informationen finden kannst.

Außerdem ist der Antwort angekungen, dass der Weg unterschiedlich ist, jenachdem welchen Compiler du benutzt. Und du machst dir noch nicht mal die Mühe anzugeben, mit welchem Compiler deine DLL erstellt wurde.

herbivore

S
8.746 Beiträge seit 2005
vor 18 Jahren

Eine normale C#-DLL kannst du NICHT mit C++ verheiraten. Um das zu tun, muss du in C# eine COM-DLL schreiben, leider ungleich komplizierter als ein paar Funktionen in einen DLL zu packen..

Diese kannst du dann über C++ ansprechen.

Der Rückweg (C++-DLL >- C#) ist deutlich einfacher. Das geht dann einfach über DLLIMPORT.