调用C或C++的DLL出现“方法的类型签名与 Interop 不兼容”

来源:互联网 发布:熟丝桃子圈微博全数据 编辑:程序博客网 时间:2024/05/22 02:01
int _stdcall Read(char CodeNum,char* Res,int* Status,int WaitTime=500);

我写的C#调用方法是这样的:

[DllImport("PCBDll.dll")]public static extern int Read(int CodeNum, ref byte[] Res, ref int[] Status,int WaitTime);

经过查阅C++相关资料,得出正确的写法应该是这样的:

[DllImport("PCBDll.dll")]public static extern int Read(int CodeNum, byte[] Res, int[] Status,int WaitTime);

原因:Res本身传的就是地址,所以不用再加ref了。去掉ref后一切运行正常。看来我的想法应该是正确的。


原创粉丝点击