公司买一个USB接口的刷卡器,厂家提供了DLL文件.需要通过调用DLL文件让刷卡器发出声音和读取卡号,现在调用DLL可以让刷卡器发出声音了,但是读取卡号这出问题了.现在附上代码调用DLL方法:public char[] objchar = new char[5]; //声明数组
[DllImport("OUR_IDR.dll", EntryPoint = "idr_read", CallingConvention = CallingConvention.StdCall)]//调用dll文件中的idr_read函数
public static extern byte idr_read(char[] objchar);
lb.Text = idr_read(objchar).ToString(); //获取读取卡号的返回状态厂家给的DLL文件说明:
函 数 名: idr_read
功 能 : 寻卡并返回该卡的序列号
原始声明: 形参*serial需指向一个至少已分配了5个char空间的可写数组unsigned char *指针,serial的下标由
0开始.Serial数组的内容无需赋值,因为此数组仅用于返回值。
返 回 : 返回unsigned char值,并将寻到的卡的序列号传值到*serial数组。
返 回 值: 0 操作成功,*serial数组中的数据有效。
------------------
现在调用idr_read方法,返回值是0,说明方法调用成功了,但是取不到卡号,我怀疑是c#和C++数据类型的问题,但不知道怎么改求大虾帮忙看看!!
[DllImport("OUR_IDR.dll", EntryPoint = "idr_read", CallingConvention = CallingConvention.StdCall)]//调用dll文件中的idr_read函数
public static extern byte idr_read(char[] objchar);
lb.Text = idr_read(objchar).ToString(); //获取读取卡号的返回状态厂家给的DLL文件说明:
函 数 名: idr_read
功 能 : 寻卡并返回该卡的序列号
原始声明: 形参*serial需指向一个至少已分配了5个char空间的可写数组unsigned char *指针,serial的下标由
0开始.Serial数组的内容无需赋值,因为此数组仅用于返回值。
返 回 : 返回unsigned char值,并将寻到的卡的序列号传值到*serial数组。
返 回 值: 0 操作成功,*serial数组中的数据有效。
------------------
现在调用idr_read方法,返回值是0,说明方法调用成功了,但是取不到卡号,我怀疑是c#和C++数据类型的问题,但不知道怎么改求大虾帮忙看看!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货