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

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

2012-01-08 
c++ dll c#调用问题c++中typedefstruct{BYTEsSerialNumber[SERIALNO_LEN]//序列号BYTEbyAlarmInPortNum/

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是否有问题吧

热点排行