我想作个会议签到程序,我公司有职工卡,我有职工物理卡号与员工信息对应表,如何在foxtable 下调用,请位高手指导一下:
dll 文件名 eLabel.all
在 .net 下是这样定义并调用的
[DllImport( "eLabel.DLL" )]
private static extern int InitReader();//初始化读卡器
[DllImport( "eLabel.DLL" )]
private static extern int UnlinkReader();//断开读卡器
[DllImport( "eLabel.DLL" )]
private static extern int GetMOCardSn( StringBuilder sn, StringBuilder err ); //读工作证序列号
在foxtable 全局代码中写:
<DllImport("eLabel.DLL")> Public Function InitReader() As Integer
End Function
<DllImport("eLabel.DLL")> Public Function UnlinkReader() As Integer
End Function
<DllImport("eLabel.DLL")> Public Function GetMOCardSn(ByVal sn As String,ByVal err As String) As Integer
End Function
---------------------
新建一个读卡form.form 下有三个button
--------------
button1,读卡器链接,click事件代码 :
Dim n As Integer = InitReader()
If n=0 Then
Messagebox.Show("链接成功")
Else
Messagebox.Show("链接失败")
End If
------------
button3,关闭form(同时断开读卡器), click事件代码 :
Dim c As Integer = UnlinkReader()
Forms("w_read").close()
---------
经测试,button1,button3 运行正常
在button2,读卡,报错,button2 click事件代码 :
Dim sn As String
Dim err As String
Dim c As Integer = GetMOCardSn( sn , err )
Messagebox.Show("22")
执行button1后,执行button2(执行读卡器链接后,执行读卡)
提示: 错误代码位置:窗口,w_read,Button2,Click
System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
在 UserCode.GetM0CardSn(String sn, String err)
在 UserCode.Click_2dcb6b29(ControlEventArgs e)
那位专家指指招,谢谢,我邮箱 zhangyan@bjbpp.com