VB与指纹仪设备的API调用相关问题请教

zjhss1981 2013-06-13 08:57:11
这几天在搞个指纹仪设备的接口,对方提供了API函数的说明,但我用VB调用的时候,打开设备可行,但就是取不到指纹图像。 我觉得是不是函数声明或字段类型错误所导致的。 下面,我把相关的API函数说明以及VB调用的代码和声明发在下面,请各位高手帮我指明下问题所在或值得怀疑的地方,谢谢各位!


一、 API函数说明;

/* 打开设备,可以作为检测设备用 返回:true:成功 false:失败 */
BOOL OpenDevice();

/* 从设备获取指纹图像
in:int nTimeOut 超时 建议取10000即10S
out:unsigned char* lpImageData 图像缓冲区,大小为200*152字节
返回:0:获取图像成功 -1:失败 -2:超时 */
int xtGetImageData( int nTimeOut, unsigned char* lpImageData);

二、VB中函数声明:

'/* 打开设备,可以作为检测设备用 返回:true:成功 false:失败 */
Public Declare Function OpenDevice Lib "xt22UfpDll.dll" () As Boolean

' 从设备获取指纹图像 in:int nTimeOut 超时 建议取10000即10S out:unsigned char* lpImageData 图像缓冲区,大小为200*152字节
' 返回:0:获取图像成功 -1:失败 -2:超时
Public Declare Function xtGetImageData Lib "xt22UfpDll.dll" (ByVal nTimeOut As Long, ByRef lpImageData As Byte) As Long

三、VB中调用函数:
1、打开设备,可以作为检测设备用
Public Function openDevicemds() As Integer
Dim rtn As Boolean
rtn = True
'返回:true:成功 false:失败
rtn = OpenDevice()
If (rtn) Then
openDevicemds = 1
iState = 1
Else
openDevicemds = 0
iState = 0
End If
End Function

2、从设备获取指纹图像
Public Function getFingermds(ByVal cs As Long) As String
Dim ret As Long
Dim bret As Boolean
On Error GoTo onerror
getFingermds = ""

Dim FingerBuf(152, 200) As Byte
Dim SrcFeatureBuf(512) As Byte

'返回:0:获取图像成功 -1:失败 -2:超时
ret = xtGetImageData(10000, FingerBuf(0, 0))
getFingermds = ""
onerror:
getFingermds = "error"
End Function
...全文
186 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨曦月 元老 2013-07-04
  • 打赏
  • 举报
回复
你这声明,根本不可能对吧。数据类型你都没弄明白。
zjhss1981 2013-06-17
  • 打赏
  • 举报
回复
出错的地方肯定是这句:ret = xtGetImageData(10000, FingerBuf(0, 0)) 调用直接报错,类似于DLL中根本就没有这个API函数一样,如果参数声明没有问题的话,那问题肯定是在DLL上了,所以请教各位帮我看下声明这部分。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧