关于考勤机接口调用的问题
小弟最近正在做一个考勤管理系统,使用的考勤机是由舒特电子提供的,考勤机是lan类型的,不是接串口的。厂商提供的硬件接口是用delphi开发的,主要的函数有以下几个:
function _GETVERSION():Pchar;stdcall;
返回值为动态库的版本号
function _LANREALDOWNLOAD(ipaddr:pchar):pchar;stdcall;export;
实时采集考勤机的最新一条刷卡数据,若考勤机在上次调用该函数之后没有新的刷卡记录,则返回'00000000000000000000',若有记录则返回“卡号(6位)+年(4位)+月(2位)+日(2位)+时(2位)+分(2位)+考勤机机号(2位)”。注意:该函数作为实时采集刷卡数据功能,需要不断地调用,考勤机记号要轮流更换。若长时间不调用该函数,且考勤机有多次刷卡,则调用该函数时只能采集到最新的刷卡记录。IPADDR为考勤机的IP地址。
。。。。。。
我现在在vb.net 2003 环境下调用该接口的_LANREALDOWNLOAD函数,返回的值是乱码,或者空串,调用其它和硬件相关的函数也会报错;只有调用_GETVERSION取版本号这种不参与通信的函数返回值才正确,以下是代码,请高手指正。
'*声明
<DllImport("..\bin\w_kqrec.dll", CharSet:=CharSet.Auto)> _
Public Shared Function _LANREALDOWNLOAD(ByVal ip As String) As String
End Function
'*调用
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim s As String = String.Empty
s = _LANREALDOWNLOAD("172.26.32.147")
End Sub
s会出现乱码