Foxtable(狐表)用户栏目专家坐堂 → 怎样定义api函数


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

主题:怎样定义api函数

帅哥哟,离线,有人找我吗?
lxl
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/23 11:25:00 [显示全部帖子]

还要先调用CVR_Read_Content 才行

你还得把CVR_Read_Content 的函数原型贴出来。(也可能没有参数)

 

 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/24 11:04:00 [显示全部帖子]

大致是这样的:

先定义一个连接设备的函数InitComm

    Private Declare Function CVR_InitComm Lib "termb.dll" (ByVal Port As Integer) As Integer

    Public  Function InitComm() As Boolean   '遍历串口,端口查找设备。找到返回True
        For i As Integer = 1 To 4
            If CVR_InitComm(i) = 1 Then Return True
        Next
        For i As Integer = 1001 To 1004
            If CVR_InitComm(i) = 1 Then Return True
        Next
        Return False
    End Function

 

以后用InitComm就可以启动设备了。

InitComm 如果成功(返回True)。可以进行下一步

 

 

 

[此贴子已经被作者于2010-5-24 11:07:46编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/24 11:12:00 [显示全部帖子]

然后用定时器300ms自动检查一次是不是有身份证,或者手动用按钮来主动检测。

刷卡次数很少的话,就用手动检测吧,节约资源

    Private Declare Function CVR_Authenticate Lib "termb.dll" () As Integer

    Public Function Authenticate() As Boolean
        Return CVR_Authenticate = 1
    End Function

 

如果Authenticate函数为true就该执行下一步:读取信息


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/24 11:34:00 [显示全部帖子]

这里没弄明白,也没办法调试。

 

 

    Private Declare Function CVR_ReadBaseMsg Lib "termb.dll" (ByVal pucCHMsg() As Byte, ByVal puiCHMsgLen As Integer, _
                                                      ByVal pucPHMsg() As Byte, ByVal puiPHMsgLen As Integer, _
                                                      ByVal nMode As Integer) As Integer                 '读信息到内存
    Private Declare Function GetPeopleName Lib "termb.dll" (ByVal strTmp() As Byte, ByVal strLen As Integer) As Integer     '读姓名

 

 

   Public Function GetName() As String
        Dim CHMsg() As Byte
        Dim CHMsfLen As Integer
        Dim PHMsg() As Byte
        Dim PHMsgLen As Integer
        Dim NameBuff() As Byte
        Dim Name As String
        CVR_ReadBaseMsg(CHMsg, CHMsfLen, PHMsg, PHMsgLen, 2)     '主要是这里不明白。传入的参数怎么没用到
        GetPeopleName(NameBuff, 30)                                               
        Name = System.Text.Encoding.GetEncoding("GB2312").GetString(NameBuff)
        Return Name

    End Function

 

 


 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/24 11:36:00 [显示全部帖子]

最好把所有的方法 封装成一个类,编译成dll 调用。管理起来方便一点。以后还可以重用这些代码
[此贴子已经被作者于2010-5-24 11:37:41编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/5/24 13:44:00 [显示全部帖子]

以下是引用sophia在2010-5-24 11:23:00的发言:

发布商提供的例程

 下载信息  [文件大小:362.7 KB  下载次数:4]
图片点击可在新窗口打开查看点击浏览该文件:vb.rar

例程你传.net的,VB.net或者C#.net的都行。

你这个是VB6.0的


 回到顶部