解决方案 »

  1.   

    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; 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,....);
      

  2.   

    看你的声明好像没问题,但p_csRoomNo似乎是要初始化给个房间号,传进去给函数用的.
    你似乎没有给初始值.
      

  3.   

    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';
      

  4.   

     Ret := SDK_KPReadGuestCard(StrRoomNo, StrStartTime, iTimeCount, iTime, iLost, StrCardSn);
    改下
     Ret := SDK_KPReadGuestCard(StrRoomNo, StrStartTime, integer(@iTimeCount),integer(@ iTime),integer(@ iLost), StrCardSn);
    &在C里面是引用类型,属于传地址一类吧,