VB:汉王人脸通SDK示例代码(一)执行设备命令 For VB6

注意:针对使用C/C++版本的FaceId.dll。代码仅供参考,需要根据具体的设备做调整

运行环境

下载安装Visual C++ Redistributable Packages for Visual Studio 2013

演示程序源代码下载:

FaceIdDemo-VB-20150506.zip

程序界面:
TcpClientDemo-VB6

示例代码(版本:VB6)

Private Declare Function FaceId_Start Lib "FaceId.dll" (ByVal Address As Long, ByVal Port As Long, ByVal AddressFamily As Long) As Long
Private Declare Function FaceId_SetSecretKey Lib "FaceId.dll" (ByVal SocketHandle As Long, ByVal SecretKey As Long) As Long
Private Declare Function FaceId_GetSecretKey Lib "FaceId.dll" (ByVal SocketHandle As Long) As Long
Private Declare Function FaceId_Execute Lib "FaceId.dll" (ByVal SocketHandle As Long, ByVal InBuffer As Long, ByRef hOutBuffer As Long, ByVal CodePage As Long) As Long
Private Declare Sub FaceId_Close Lib "FaceId.dll" (ByVal SocketHandle As Long)
Private Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)

Private Sub CommandClear_Click()
TextView.Text = vbNullString
End Sub

Private Sub CommandExecute_Click()
Dim DeviceIP As String
DeviceIP = TextDeviceIP.Text

Dim DevicePort As Integer
DevicePort = CInt(TextDevicePort.Text)

Const AF_INET As Long = 2

Dim SocketHandle As Long
SocketHandle = FaceId_Start(StrPtr(DeviceIP), DevicePort, AF_INET)
If SocketHandle = 0 Then
    MsgBox "请输入正确的设备地址和通信端口!"
    Exit Sub
Else
    Rem 通信密码要和设备中的密码一致
    Dim SecretKey As String
    SecretKey = vbNullString
    If FaceId_SetSecretKey(SocketHandle, StrPtr(SecretKey)) <> 0 Then
        FaceId_Close SocketHandle
        MsgBox "设置通信密码失败!"
        Exit Sub
    End If
End If

Rem 清空原有文本
TextView.Text = vbNullString

Dim Command As String
Command = TextCommand.Text

Dim hOutBuffer As Long

Rem 定义设备通信编码字符集为简体中文
Const DeviceCodePage As Long = 936

Rem 执行设备命令
Dim ReceivedChars As Long
ReceivedChars = FaceId_Execute(SocketHandle, StrPtr(Command), hOutBuffer, DeviceCodePage)
If ReceivedChars > 0 Then
    Dim Answer As String
    Answer = String$(ReceivedChars * 2, vbNullChar)
    CopyMemory StrPtr(Answer), hOutBuffer, ReceivedChars * 2
    TextView.Text = Answer
Else
    MsgBox "执行设备命令失败!"
End If

Rem 断开连接
FaceId_Close SocketHandle
End Sub

Comments are closed.