So ich bin zurück!
Die Rückgabe habe ich inzwischen hinbekommen:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| [DllImport("crypt.dll")] private static extern IntPtr encrypt(byte[] str_tocrpyt);
MessageBox.Show(Marshall.PtrToStringAnsi(encrypt()); |
Die Paramterübergabe bereitet mir aber Bauchweh:
ich habe schätzungsweise alle Google-Ergebnisse der ersten 3 Googleseiten abgegrast und nichts hat funktioniert (Stringbuilder inklusive).
Die Exception die ich bekomme lautet:
Ein Aufruf an die PInvoke-Funktion "CS-Demo!CS_Demo.Form1::encrypt" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.
Wenn ich die Exception richtig deute verwende ich den falschen C#-Datentyp.
Hat jemand von euch einen Tipp?