Hallo C#-User,
ich habe ein Problem, dass ich dringend lösen muss.
Ich rufe über den DLLImport eine Funktion aus einer externen DLL auf. Scheint soweit auch zu funktionieren. Nur liefert mir die gewünschte Funktionen keinerlei Werte, auch wenn die Rückgabe der Funktion den "ReturnCode = 0 = kein Fehler aufgetreten" liefert.
Ich vermute, dass es mit der unterschiedlichen String-Behandlung zwischen C++ und C# im Zusammenhang steht.
Die Orgininalbeschreibung stellt folgendes dar:
---
Parameter "ReturnValue"
Speicherbereich ( Mindestgröße 3000 Byte ) zur Rückgabe der Informationen. Dieser Speicherbereich muss mit Blanks vorbelegt und mit NULL 0x00 terminiert werden.
---
Gelöst habe ich das in C# mit folgender Vorgehensweise:
string returnCode = new String(' ', 3000) + "\0";
Leider ist der String leer nach Aufruf der Funktion. Hat jemand eine Ahnung, woram das liegen könnte?
Gruß
jlo
ich habe ein Problem, dass ich dringend lösen muss.
Ich rufe über den DLLImport eine Funktion aus einer externen DLL auf. Scheint soweit auch zu funktionieren. Nur liefert mir die gewünschte Funktionen keinerlei Werte, auch wenn die Rückgabe der Funktion den "ReturnCode = 0 = kein Fehler aufgetreten" liefert.
Ich vermute, dass es mit der unterschiedlichen String-Behandlung zwischen C++ und C# im Zusammenhang steht.
Die Orgininalbeschreibung stellt folgendes dar:
---
Parameter "ReturnValue"
Speicherbereich ( Mindestgröße 3000 Byte ) zur Rückgabe der Informationen. Dieser Speicherbereich muss mit Blanks vorbelegt und mit NULL 0x00 terminiert werden.
---
Gelöst habe ich das in C# mit folgender Vorgehensweise:
string returnCode = new String(' ', 3000) + "\0";
Leider ist der String leer nach Aufruf der Funktion. Hat jemand eine Ahnung, woram das liegen könnte?
Gruß
jlo
Comment