Konvertieren Sie eine Clarion-Prozedurdeklaration in C # DLLImport

Wie kann ich diese Clarion-Prozedurdeklaration in C # konvertieren? Es ist Teil einer in C geschriebenen 3rd-Party-DLL, die nicht viel Dokumentation enthält. Ich habe den Prototyp für die Methode in Clarion aufgelistet, die ordnungsgemäß funktioniert. In C # bin ich mir nicht sicher, welchen Typ ich ersetzen soll*CString. Ich habe es versuchtchar[] wie @DanielC vorgeschlagen, aber es hat nicht funktioniert. Ich habe auch diesen Clarion gefundenlong ist 32-bit (danke @ shf301).

Clarion:

SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual

C # (was ich ausprobiert habe, was nicht funktioniert):

[DllImport("3RD_PARTY_API.dll")]
private static extern long SendRequest(ref string xData, int DataLen, int xTimeout);

Wenn ich die anrufeSendRequest Methode in C # bekomme ich den StandardPInvokeStackImbalance wurde erkannt Fehler von VS2010. Ich denke, es ist ein Problem der Parametertypen und nicht so etwasCharSet oderEntryPoint in demDllImport-Deklaration. Ich bin wirklich nur festgefahren, wie man konvertiert*CString zu einem gültigen C # -Typ.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage