C++ DLL mit /clr compiliert in c# benutzen
-
Ich hab eine DLL in VS 2005 EE mit einer Funktion void test() erstellt. Diese befindet sich in dem Namespace Test. Die ganze DLL habe ich mit der Option /clr compiliert. Das Laden in C# als Referenz funktioniert ohne Probleme, aber wie kann ich nun auf die Funktion in der DLL zugreifen? Welche "using ... " muss ich hinzufügen?
Danke
-
Funktionen kannst Du nur via P/Invoke aufrufen. Dazu musst Du die Funktion in der DLL Exportieren (entweder via def-Datei oder via dllexport).
Du kannst aber ohne Probleme Methoden einer ref-Klasse in C# verwenden. Dazu musst Du nur die Assembly (DLL) in C# als Referenz einbinden (in den Projekt-Einstellungen).
-
ich hab die Funktion test() mit __declspec(dllexport) exportiert also
__declspec(dllexport) void test() { }
was ist dieses p/Invoke?
-
z.B.:
[DllImport("advapi32.dll", SetLastError = true)] static extern bool GetUserName(System.Text.StringBuilder sb, ref Int32 length)
-
Danke, hab es inzwischen schon lösen können: http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_24_001.htm