[DllImport("mwrf32.dll")]
        public static extern int rf_init(int port, long baud);
int icdev= rf_init(4,9600);提示是打开通信端口失败,求解

解决方案 »

  1.   

    端口是否正确,端口是否占用?dll文件是否在debug文件夹下?
      

  2.   

    之前的解决了,现在是类型对应:
    [DllImport("mwrf32.dll")]
    public static extern Int16 rf_anticoll(int icdev, Byte _Bcnt, out UInt64 _Snr);
    [DllImport("mwrf32.dll")]
    public static extern Int16 rf_select(int icdev, UInt64 _Snr,out Byte _Size);
    Int16 st;
    UInt64 _Snr;
    Byte _Size;
    st=rf_anticoll(icdev,0,out _Snr);
    st = rf_select(icdev, _Snr,out _Size);执行到最后一步出现;尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
      

  3.   

    int rf_anticoll(int icdev,unsigned char _Bcnt,unsigned long *_Snr);功 能:卡防冲突,返回卡的序列号参 数:icdev:通讯设备标识符       _Bcn: 设为0       _Snr:返回的卡序列号地址返 回:成功则返回 0
    int rf_select(int icdev,unsigned long _Snr,unsigned char *_Size);功 能:从多个卡中选取一个给定序列号的卡参 数:icdev:通讯设备标识符       _Snr:卡序列号       _Size:指向返回的卡容量的数据返 回:成功则返回 0上面是c++的,类型都试过了,不行
    问题查到了, out后的_Snr有问题,求解