如何将此 Clarion 过程声明转换为 C#?它是用 C 语言编写的第 3 方 DLL 的一部分,没有太多文档。我已经列出了 Clarion 中正常工作的方法的原型。在 C# 中,我不确定要使用什么类型来替换*CString
. 我char[]
像@DanielC 建议的那样尝试过,但是没有用。我还发现 Clarionlong
是 32 位的(感谢 @shf301)。
号角:
SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual
C#(我尝试过,但不起作用):
[DllImport("3RD_PARTY_API.dll")]
private static extern long SendRequest(ref string xData, int DataLen, int xTimeout);
SendRequest
当我在 C# 中调用该方法时,我得到了来自 VS2010的标准PInvokeStackImbalance 被检测到错误。我认为这是参数类型的问题,而不是类似于CharSet
或EntryPoint
在DllImport 声明中的问题。我真的只是坚持如何转换*CString
为有效的 C# 类型。