以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎样定义api函数 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7184) |
||||||
-- 作者:sophia -- 发布时间:2010/5/23 8:00:00 -- 怎样定义api函数 现用第三方dll文件,其中定义函数原型如下:
原 型: int _stdcall GetPeopleName(char *strTmp, int strLen) //得到姓名信息 int _stdcall GetPeopleSex(char *strTmp, int strLen) //得到性别信息 int _stdcall GetPeopleNation(char *strTmp, int strLen) //得到民族信息 int _stdcall GetPeopleBirthday(char *strTmp, int strLen) //得到出生日期 int _stdcall GetPeopleAddress(char *strTmp, int strLen) //得到地址信息 int _stdcall GetPeopleIDCode(char *strTmp, int strLen) //得到卡号信息 int _stdcall GetDepartment(char *strTmp, int strLen) //得到发证机关信息 int _stdcall GetStartDate(char *strTmp, int strLen) //得到有效开始日期 int _stdcall GetEndDate(char *strTmp, int strLen) //得到有效截止日期 说 明:以上函数调用流程为:调用 CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 成功后再分别调用以上函数。CVR_Read_Content 或者 CVR_ReadBaseMsg 函数
返 回 值:
在狐表中怎样定义API函数?例如:我想用第一个“得到姓名信息”的函数 |
||||||
-- 作者:狐狸爸爸 -- 发布时间:2010/5/23 11:06:00 -- 最好让发布商提供调用例程,我很少使用传统的DLL,有的话也是对方提供了例程给我的。
下面这段加入全局代码:
<DllImport("文件名.dll")> _
Public Function GetName() As String
在Foxtable中用GetName函数取得姓名
[此贴子已经被作者于2010-5-23 11:07:12编辑过]
|
||||||
-- 作者:lxl -- 发布时间:2010/5/23 11:25:00 -- 还要先调用CVR_Read_Content 才行 你还得把CVR_Read_Content 的函数原型贴出来。(也可能没有参数)
|
||||||
-- 作者:sophia -- 发布时间:2010/5/24 0:39:00 -- 我把说明全都上传过来了,请帮参考下 |
||||||
-- 作者:sophia -- 发布时间:2010/5/24 0:41:00 --
|
||||||
-- 作者:狐狸爸爸 -- 发布时间:2010/5/24 8:26:00 -- 不太懂,对方应该有vb.net或C#例程的。 如果是vb.net的,可以直接用。 如果是C#的,网上有转换程序。
[此贴子已经被作者于2010-5-24 8:27:05编辑过]
|
||||||
-- 作者:lxl -- 发布时间: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
以后用InitComm就可以启动设备了。 InitComm 如果成功(返回True)。可以进行下一步
[此贴子已经被作者于2010-5-24 11:07:46编辑过]
|
||||||
-- 作者:lxl -- 发布时间:2010/5/24 11:12:00 -- 然后用定时器300ms自动检查一次是不是有身份证,或者手动用按钮来主动检测。 刷卡次数很少的话,就用手动检测吧,节约资源 Private Declare Function CVR_Authenticate Lib "termb.dll" () As Integer Public Function Authenticate() As Boolean
如果Authenticate函数为true就该执行下一步:读取信息 |
||||||
-- 作者:sophia -- 发布时间:2010/5/24 11:23:00 -- 发布商提供的例程
|
||||||
-- 作者:lxl -- 发布时间:2010/5/24 11:34:00 -- 这里没弄明白,也没办法调试。
Private Declare Function CVR_ReadBaseMsg Lib "termb.dll" (ByVal pucCHMsg() As Byte, ByVal puiCHMsgLen As Integer, _
Public Function GetName() As String End Function
|