首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

调用VC写的DLL失败,关于指纹仪的,请高手指教,多谢

2013-11-15 
调用VC写的DLL失败,关于指纹仪的,请高手指教,谢谢这几天在搞个指纹仪设备的接口,对方提供了API函数的说明,

调用VC写的DLL失败,关于指纹仪的,请高手指教,谢谢
这几天在搞个指纹仪设备的接口,对方提供了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
VC 函数 API VB
[解决办法]
你看看FingerBuf(0, 0)函数的使用,可能有问题
[解决办法]
既然都说了直接调用就出错,就只能是参数不对。
看了你的函数介绍。要是准确的话,只能是这个地方了。 FingerBuf(0, 0),
[解决办法]
unsigned char* lpImageData;

虽然不懂: Dim FingerBuf(152, 200) As Byte
估计是 BYTE FingerBuf[152][200];

unsigned char* 与Byte;

热点排行