读书人

C#调用C++动态链接库报内存异常

发布时间: 2012-11-06 14:07:00 作者: rapoo

C#调用C++动态链接库报内存错误
C#调用C++的一个动态链接库,调用的方法有一个参数是结构体,我在C#中也声明了结构体,但是每次调用都会报尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 是不是我在C#中声明的结构体与C++的结构体数据类型不一致导致的?

[解决办法]
假设你的 NAME_LEN 和 PASSWD_LEN 没错,还有两处
char sDVRIP[16];
WORD wDVRPort;
对应
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 16)]
public byte[] sDVRIP;
public ushort wDVRPort;
[解决办法]
某家硬盘录像机的SDK吧:)

public int wDVRPort;
改成
public ushort wDVRPort;

其他应该都是正确的。。。

读书人网 >C#

热点推荐