读书人

c++ dll c#调用有关问题

发布时间: 2012-01-08 22:48:50 作者: rapoo

c++ dll c#调用问题
c++ 中
typedef struct {
BYTE sSerialNumber[SERIALNO_LEN]; //序列号
BYTE byAlarmInPortNum;//DVR报警输入个数
BYTE byAlarmOutPortNum;//DVR报警输出个数
BYTE byDiskNum;//DVR 硬盘个数
BYTE byDVRType;//DVR类型,
BYTE byChanNum;//DVR 通道个数
BYTE byStartChan;//起始通道号,例如DVS-1,DVR - 1
}NET_DVR_DEVICEINFO, *LPNET_DVR_DEVICEINFO;

NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);


c# 中
struct LPNET_DVR_DEVICEINFO
{
byte[] sSerialNumber; //序列号
byte byAlarmInPortNum;//DVR报警输入个数
byte byAlarmOutPortNum;//DVR报警输出个数
byte byDiskNum;//DVR 硬盘个数
byte byDVRType;//DVR类型,
byte byChanNum;//DVR 通道个数
byte byStartChan;//起始通道号,例如DVS-1,DVR - 1
}

[DllImport( "HCNetSDK.dll ")]
static extern int NET_DVR_Login(string sDVRIP,int wDVRPort,string sUserName,string sPassword,ref LPNET_DVR_DEVICEINFO lpDeviceInfo);


LPNET_DVR_DEVICEINFO abc = new LPNET_DVR_DEVICEINFO();
int flag1=NET_DVR_Login( "192.0.0.64 ", 8000, "admin ", "12345 ", ref abc);


使用报错...
内存只读
先把这个解决..问题还不少...




[解决办法]
帮顶
[解决办法]
关注一下...
[解决办法]
学习一下,看还有没有高手。
[解决办法]
关注,学习。。。
[解决办法]
楼主好运气,一般都是DLL有问题!
[解决办法]
问题 会不会出现在:
NET_DVR_Login 这个方法里面啊
因为引用变量 在DLL里被操作了
而变量的初始化其实是在C#里
这样导致了 内存只读

对C++ 不熟
我的猜测啊

;)

----------------
up
[解决办法]
搂主可以用c++ 试下这个库是否有问题
[解决办法]
mark
[解决办法]
看看命名空间是不是打开了using System.Runtime.InteropServices;
楼主先确定dll是否有问题吧

读书人网 >C#

热点推荐