Da ich nun die Gelegenheit habe mich in einem Praktikum an einem Windowsprogramm zu versuchen,. möchte ich gerne c# verwenden. Da ich zugriff auf einige Dll's benötige habe ich einige Tests mit PInvoke unternommen. An einem Problem scheitere ich im Moment. Ich schaffe es einfach nicht den String aus der dll in mein Programm zu importieren. Das Ergebniss ist immer ein leerer String. Ich habe schon X verschiedene Möglichkeiten ausprobiert, und schon einige Zeit (2 Stunden) im Internet nach einer Lösung gesucht, aber die Lösungsvorschläge die ich gefunden habe beschäftigten sich mit der Frage des Imports eines Strings in eine DLL und nicht mit der eines Exports. Ihr seid meine letzte Rettung, sonst muss ich mit der MFC arbeiten, und das dies frustierend ist wisst Ihr genauso gut wie Ich.
Gruß Tobi
Hier mein kleiner Testcode:
in der C# TestRoutine:
[DllImport ("p_invoke_testlib.dll")]
public static extern void String_out( [MarshalAs(UnmanagedType.LPTStr) ]
ref StringBuilder s);
in der DLL der Code:
export void String_out(char * s)
{
s = new char[20];
sprintf(s,"%s","Hallo aus der DLL");
}
Gruß Tobi
Hier mein kleiner Testcode:
in der C# TestRoutine:
[DllImport ("p_invoke_testlib.dll")]
public static extern void String_out( [MarshalAs(UnmanagedType.LPTStr) ]
ref StringBuilder s);
in der DLL der Code:
export void String_out(char * s)
{
s = new char[20];
sprintf(s,"%s","Hallo aus der DLL");
}