VB下的结构类型定义如下:Type EMCARDINFO_ATTEND
nCardID As Long '卡号
nPersonID As Long '工号
nGrade As Long '级别
nGroup As Long '分组
strname As String * 8 '姓名
End TypeType REGCARDINFO
nNumber As Long '本次读多少张注册内容,赋值为16
nAddr As Long '从第条读起,赋值为16倍数
strcardinfo(1 To 100) As EMCARDINFO_ATTEND
End Type
动态库函数原型声明如下:
Public Declare Function KRegisterCardAutoID Lib "k950c.dll" (ByVal HDev As Long, ByVal DeviceID As Long, ByVal bisbig5 As Boolean, ByRef StrAttCard As REGCARDINFO) As Long
请问以上类型及函数转换DELPHI下的类型该如何转换,谢谢!
nCardID As Long '卡号
nPersonID As Long '工号
nGrade As Long '级别
nGroup As Long '分组
strname As String * 8 '姓名
End TypeType REGCARDINFO
nNumber As Long '本次读多少张注册内容,赋值为16
nAddr As Long '从第条读起,赋值为16倍数
strcardinfo(1 To 100) As EMCARDINFO_ATTEND
End Type
动态库函数原型声明如下:
Public Declare Function KRegisterCardAutoID Lib "k950c.dll" (ByVal HDev As Long, ByVal DeviceID As Long, ByVal bisbig5 As Boolean, ByRef StrAttCard As REGCARDINFO) As Long
请问以上类型及函数转换DELPHI下的类型该如何转换,谢谢!
解决方案 »
- 求助:delphi用mscomm接收GSM模块数据,运行时不能接受,单步调试的时候可以接受
- 动态生成MainMenu1的部分item,以及怎么触发这些item的事件?
- 请问 GLScene 如何获得 一个 3D 物体 在 GLSceneViewer 的 显示 坐标 ??????????????? 急!!!!!!!!!!!!!!!!!!
- 如何利用adoquery控件调用存储过程
- 请问delphi如何读取某个网页上面的源代码???
- 急急!求教各位大侠:关于跨操作系统windows 不同版本运行问题。
- 学习Delphi的困惑
- 奇怪的连接数据库问题?
- 高手指点,如何调用netapi32.dll中的netMessageBufferSend函数?
- 如何在程序中动态设置BDE别名?
- TServerSoket接收包的问题
- TShape自定义键盘事件
EMATTCARDINFO=RECORD// 单张考勤门禁卡数据结构
nCardID :LongInt;//卡序列号
nPersonID:LongInt;//工号
nGrade:LongInt;
nGroup:LongInt;//级别与分组,暂无意义
strName:array[1..8] of char;//姓名
end;type
AttGuardCardID=RECORD //下载注册卡数据结构
nNumber:LongInt;//下载的个数,小于等于16
nAddr:LongInt;//无意义
sEmAttguardCard:array [1..100] of EMATTCARDINFO;//卡内容
end;Type
pAttGuardCardID=^AttGuardCardID;//函数声明
function KRegisterCardAutoID(HDev:longint;DeviceID:integer;bIsBig5:longbool;StrAttcard:pAttGuardCardID):longint;stdcall;far;external 'K950c.dll';
//函数调用
Try
StrAttcard.nNumber:=1;
StrAttcard.nAddr:=ccid;
for i:=1 to StrAttcard.nNumber do
begin
StrAttcard.sEmAttguardCard[i].nCardID:=strtoint(sPID); //卡序列号
StrAttcard.sEmAttguardCard[i].nPersonID:=strtoint(sEmpNo); //卡工号
StrAttcard.sEmAttguardCard[i].nGrade:=0;
StrAttcard.sEmAttguardCard[i].nGroup:=0;
for j:=1 to 8 do
StrAttcard.sEmAttguardCard[i].strName[j]:=sEmpName[j];
end;
except
end;
if KRegisterCardAutoID(h,ccid,false,@strAttcard)=0 then
showmessage('发卡成功!')
else
showmessage('发卡失败!');