Function SDK_KPReadGuestCard(p_csRoomNo:PCHAR; p_csStartTime: PCHAR; var p_nTimeUnit: longint; var p_nTimeLength: longint; var p_nStopFlag: longint; p_csCardNo: PCHAR): LongInt; codecl; External 'KPLOCKSDK.dll';
Ret := SDK_KPReadGuestCard(StrRoomNo, StrStartTime, iTimeCount, iTime, iLost, StrCardSn); 改下 Ret := SDK_KPReadGuestCard(StrRoomNo, StrStartTime, integer(@iTimeCount),integer(@ iTime),integer(@ iLost), StrCardSn); &在C里面是引用类型,属于传地址一类吧,
var p_nStopFlag: longint; p_csCardNo: PCHAR): LongInt; Stdcall; External 'KPLOCKSDK.dll';字符串应该没有问题,但是整型这个应该定义的有问题,这也是个指针,用PInteger类型代替Function SDK_KPReadGuestCard(p_csRoomNo:PCHAR; p_csStartTime: PCHAR;p_nTimeUnit: PInteger; _nTimeLength: PInteger; p_nStopFlag: PInteger; p_csCardNo: PCHAR): LongInt; Stdcall; External 'KPLOCKSDK.dll';调用的时候定义PInteger指针
iLength:^Integer;使用
SDK_KPReadGuestCard(......., @iLength,....);
你似乎没有给初始值.
var p_nStopFlag: longint; p_csCardNo: PCHAR): LongInt; codecl; External 'KPLOCKSDK.dll';
改下
Ret := SDK_KPReadGuestCard(StrRoomNo, StrStartTime, integer(@iTimeCount),integer(@ iTime),integer(@ iLost), StrCardSn);
&在C里面是引用类型,属于传地址一类吧,