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.