C# Headerdateien in VC++
-
Hallo,
C# Projekttyp Klassenbibliothek. Alles was exportiert werden soll, bzw. in Deinem C++ Programm aufgerufen werden muß, machst Du public:
using System; namespace sharpDLL { public class HelloWorldClass { public void HelloWorld() { Console.WriteLine("Hello World"); } } }
C++/CLI Projekt. In den Projekteigenschaften einen Verweis auf die C#-DLL machen und den Namespace inkludieren:
using namespace sharpDLL; int main(array<System::String ^> ^args) { HelloWorldClass ^cls = gcnew HelloWorldClass(); cls->HelloWorld(); return 0; }
Gruß
foodax
-
Danke Leute hat funktioniert und ich bin wieder um einiges schlauer!!
MFG
-
Hallo zusammen,
ich habe ein großes cpp-Projekt und wollte nach diesem Muster meine C#-ClassLibray einbinden. Zum Test habe ich euer Beispiel ausprobiert. Leider ohne erfolg...mein namespace (von c# dll) würde nicht existierenKönnt Ihr mir weiterhelfen?
benötigt Ihr mehr Infos?
-
Lies meinen Beitrag; falls Du mit cpp Projekt ein C++ Projekt und nicht etwa ein C++/CLI Projekt meinst ist der Falls klar.
-
danke für die schnelle Antwort,
aber wie kann ich die Referenz auf dieses neu erzeugte Assembly hinzufügen?ich habe deine Beitrag gelesen, aber zu wenig erfahrung mit Cpp
Bei C# würde ich unter "Verweise" die entsprechende Projektdatei hinzufügen, wie bei einem Cpp-Projekt?
Vielen Dank
-
Genau gleich!?
Project|References...|Add New Reference...
-
jep...danke man, das hat funktioniert
-
noch mal eine generelle Frage:
Habe ich eine chance ein c#-DLL in eine nicht C++/CLI-Projekt einzubinden?In dem C++-Projekt (nicht von mir) habe ich einige Codestellen, wie bei diesem Objektzeiger:
ProgrammData *p = new ProgrammData;
das ist doch nicht C++/CLI oder?
Bei C++/CLI würde es doch eher so aussehen:
ProgrammData ^p = gcnew ProgrammData;
-
andreason schrieb:
noch mal eine generelle Frage:
Habe ich eine chance ein c#-DLL in eine nicht C++/CLI-Projekt einzubinden?"Ja"
1. Via COM Interop: http://www.codeproject.com/KB/COM/COM_DOTNET_INTEROP.aspx
2. Du könntest auch die CLR in deinem Prozess Hostenandreason schrieb:
In dem C++-Projekt (nicht von mir) habe ich einige Codestellen, wie bei diesem Objektzeiger:
ProgrammData *p = new ProgrammData;
das ist doch nicht C++/CLI oder?
Genau. Das ist C++.
andreason schrieb:
Bei C++/CLI würde es doch eher so aussehen:
ProgrammData ^p = gcnew ProgrammData;Genau. Das ist C++/CLI.
-
Wie kann man das machen?