Foxtable(狐表)用户栏目专家坐堂 → [求助] 读卡器调用


  共有5359人关注过本帖树形打印复制链接

主题:[求助] 读卡器调用

美女呀,离线,留言给我吧!
zhangyan123_123
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
[求助] 读卡器调用  发帖心情 Post By:2014/4/21 11:08:00 [只看该作者]

我想作个会议签到程序,我公司有职工卡,我有职工物理卡号与员工信息对应表,如何在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


 


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/21 11:08:00 [只看该作者]

狐表安装在了系统目录吧? 导致访问DLL失败.

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/21 11:51:00 [只看该作者]

试试这样去定义,看行不行

 

<DllImport("eLabel.DLL")> Public Function GetMOCardSn(ByVal sn As StringBuilder, ByVal err As StringBuilder) As Integer
End Function


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/4/21 12:24:00 [只看该作者]

安装了,否则不可能读卡器链接成功


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/4/21 12:28:00 [只看该作者]

刚测试了,报同样错误


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/21 14:42:00 [只看该作者]

以下是引用zhangyan123_123在2014-4-21 12:28:00的发言:

刚测试了,报同样错误

 

感觉不应该错才对。你再改改,应该是可以的。

 

<DllImport("eLabel.DLL")> Public Function GetMOCardSn(ByRef sn As StringBuilder, ByRef err As StringBuilder) As Integer
End Function

 

调用

Dim sn As new Stringbuilder
Dim err As new Stringbuilder
Dim c As Integer = GetMOCardSn(sn , err)
msgbox(c & " " & sn)


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/4/21 15:53:00 [只看该作者]

原来提示:     错误代码位置:窗口,w_read,Button2,Click

            System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
            在 UserCode.GetM0CardSn(String& sn, String& err)
            在 UserCode.Click_2dcb6b29(ControlEventArgs e)

 

改为 stringBuilder后,错误提示

 

           System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
            在 UserCode.GetM0CardSn(StringBuilder& sn, StringBuilder& err)
            在 UserCode.Click_2dcb6b29(ControlEventArgs e)

 

试着放卡卡与不放卡,错误提示一样,此程序,我公司在.net测试成功,我在pb下也测试成功了,不知在此为何抱错,

可能是那没配置好


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/4/21 16:02:00 [只看该作者]

你那有读卡器吗?不行我发给你们eLabel.dll,你们测试一下,eLabel.dll默认端口是com1,我已在系统配置,把端口

改为com1


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/21 16:13:00 [只看该作者]

以下是引用zhangyan123_123在2014-4-21 16:02:00的发言:

你那有读卡器吗?不行我发给你们eLabel.dll,你们测试一下,eLabel.dll默认端口是com1,我已在系统配置,把端口

改为com1

 

没有读卡器,远程帮你看一下,应该是挺简单的问题

 

QQ 2450314695

 


 回到顶部
美女呀,离线,留言给我吧!
zhangyan123_123
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:33 积分:336 威望:0 精华:0 注册:2014/3/25 14:02:00
  发帖心情 Post By:2014/4/21 16:25:00 [只看该作者]

我公司是保密单位,单位内网和外网是物理隔离的,如有机会北京,欢迎来我公司参观,

 回到顶部
总数 13 1 2 下一页