首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 调用C++的DLL函数报错,该怎么解决

2013-07-20 
c# 调用C++的DLL函数报错C++的原函数是unsigned char __stdcall RC500USB_select(unsigned long snr,unsig

c# 调用C++的DLL函数报错
C++的原函数是
unsigned char __stdcall RC500USB_select(unsigned long snr,unsigned char &size);
VB调用DLL文件不会出现问题
Declare Function RC500USB_select Lib "RC500USB.dll" (ByVal snr As Long, ByRef size As Byte) As Byte
用C#我是这么调用的
public static extern byte RC500USB_select(ulong snr, ref byte size);
运行的时候报错尝试读取或写入受保护的内存。这通常指示其他内存已损坏。不知道怎么回事 是不是我数据格式转换错误了。 C++ C#
[解决办法]
c#中ulong是64位无符号整数,而c++中,unsigned long是32位的,vb中的Long也是32位的。
所以c#中对应的要用uint或者UInt32

热点排行