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

关于考勤机接口调用的有关问题

2012-04-06 
关于考勤机接口调用的问题小弟最近正在做一个考勤管理系统,使用的考勤机是由舒特电子提供的,考勤机是lan类

关于考勤机接口调用的问题
小弟最近正在做一个考勤管理系统,使用的考勤机是由舒特电子提供的,考勤机是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会出现乱码


[解决办法]
字节数组取到了?那只有自己想办法转码了
[解决办法]
字节数组是取不到的,什么类型的数组都取不到,报的错误是: 不能return values.
我试着声明返回intptr,返回了一串数字,也不知道是什么东西,反正不是我想要的。
会不会是调用pchar的时候需要分配内存??
======================
返回的是内存地址
try
Marshal.ReadByte( intptr , int//索引 )读取

热点排行