auf managed C++ Projekt mittels C# zugreifen

sinamine

Mitglied
Hey @ll (!)

Habe mehrere Managed C++ Projekte in mein C# Projekt (welches ich in Visual Studio 2005 schreibe) eingebunden. Nur wie kann ich auf die einzelnen C++ Projekte bzw. Klassen zugreifen!? :confused: Hoffe mir kann jemand weiterhelfen!
 
Erstellt in deinem C#-Projekt per Verweis hinzufügen > Projekte einen Verweis auf die C++-Projekte innerhalb der Projektmappe. So werden beim Build automatisch die DLLs in den Ordner des C#-Projekts kopiert und können problemlos verwendet werden, indem du den entsprechenden Namespace des C++-Projektes im C#-Quellcode per using-Direktive einbindest.

Gruß
PhoenixLoe
 
Mein Problem ist, dass bei dem C++ Projekt keine DLL vorhanden sind. Ich habe nur eine *.manifest-Datei. Des Weiteren habe ich mehrere C++ Projekte bis jetzt einfach in mein Projekt eingebunden (ohne Verweis, da ich sonst beim Ausführen folgende Fehlermeldung bekomme:
"Die Assembly d:\...\debug\FS_Form.dll, auf die verwiesen wird, konnte nicht gefunden werden. Wenn diese Assembly von einem anderen Ihrer Projekte erstellt wird, stellen Sie sicher, dass dieses Projekt zuerst erstellt wird."
Mein Problem ist auch, dass ich den C++ Code so wie er ist übernehmen muss. Nur gibt es in dem C++ Code auch keinen namespace. :confused:
Gibt es sonst noch eine Möglichkeit wie ich auf die C++ Klassen zugreifen kann?
 
Ich jetzt ehrlich gesagt ebenfalls etwas verwirrt.
Das geringere Problem ist, dass keine namespace-Ausdrücke im C++-Quellcode vorhanden sind. Dann kannst du sämlichte Klassen direkt verwenden, ohne im C#-Code einen Namespace einbinden zu müssen. Ein Beispiel:

C++-Code:
Code:
 public ref class Klasse
{( ... )
};
C#-Code:
Code:
( ... )

 // Klasse-Objekt kann direkt verwendet werden
Klasse obj = new Klasse( );

( ... )
Das andere Problem ist etwas schwieriger. Du hast also mittlerweile die C++-Projekte zusammen mit deinem C#-Projekt in einer einzigen Projektmappe? Dann solltest du nochmals versuchen, Verweise auf die C++-Projekte hinzuzufügen. Im Anhang haben ich dir mal drei Bilder mitgeschickt, die dir Schritt für Schritt zeigen, was ich bei einem Test-Projekt gemacht habe, das ein C#-Projekt und ein C++-Projekt verbindet.

Versuche es noch einmal. Falls die Fehlermeldung immer noch auftauchen sollte - was ich nicht hoffe -, solltest du überprüfen, ob auch wirklich alle Projekte beim Build erstellt werden und ob die C++-Projekte auf DLL eingestellt sind. Du kannst nämlich nicht z.B. zwei Windows-Projekte verbinden.

Gruß
PhoenixLoe
 

Anhänge

  • Schritt_1.PNG
    Schritt_1.PNG
    13,4 KB · Aufrufe: 37
  • Schritt_2.PNG
    Schritt_2.PNG
    7,2 KB · Aufrufe: 43
  • Schritt_3.PNG
    Schritt_3.PNG
    11,8 KB · Aufrufe: 37
Genau, ich habe ein C# Projekt und zu diesem habe ich mehrere C++ Projekte hinzugefügt (also eine Projektmappe). Das mit dem Verweis hinzufügen versteh ich voll und ganz und wird auch wohl der springende Punkt sein, nur habe ich vor allem bei dem einen C++ Projekt welches ich unbedingt benötige keine DLL.
Habe schon oft genug mit DLL's gearbeitet, nur eben noch nie das ich eine C++ DLL einbinde.
So, werd mal schauen das ich eine DLL bekomme und dann sollts funken glaub ich. :)

Danke auf alle Fälle für deine Hilfe! ;)
 
Zurück