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