VB中调用dll声明 Public Declare Function SDK_KPReadGuestCard Lib "XX.dll" (ByVal p_csRoomNo As String, ByVal p_csStartTime As String, ByRef p_nTimeUnit As Integer, ByRef p_nTimeLentgh As Integer, ByRef p_nStopFlag As Integer, ByVal p_csCardNo As String) As Integer
DELPHI里面这样
function SDK_KPReadGuestCard(p_csRoomNo,p_csStartTime:PChar;p_nTimeUnit,p_nTimeLength,p_nStopFlag:Integer;p_csCardNo:PChar):integer;stdcall; external'XX.dll';
但是调用的时候一直报地址错误
Do Read Card Error!Access violation at address 10005549 in module 'xx.dll'. Read of address FFFFFFFF
下面是代码
var
csRoomNo: array[0..20] of char ;
csStartTime: array[0..20] of char ;
csCardNo:array[0..20] of char ;
//csRoomNo, csStartTime,csCardNo:pchar;
RoomNo, starttime,CardNum:String;
nTimeUnit,nStopFlag,nTimeLength,nComparTime:Integer;
ReturnValue: Integer;
begin
try
nStopFlag := -1;
RoomNo := 'FFFFFFFFFFFF';//
starttime := 'FFFFFFFF'; //
CardNum := 'FFFFFFFFFF' ; //
StrPCopy(csRoomNo, RoomNo);
StrPCopy(csStartTime,starttime) ;
StrPCopy(csCardNo,CardNum) ;
SDK_KPHotelAuthID(PChar(Option.HotelId));
ReturnValue := SDK_KPReadGuestCard(csRoomNo,csStartTime,nTimeUnit,nTimeLength,nStopFlag,csCardNo);
DELPHI里面这样
function SDK_KPReadGuestCard(p_csRoomNo,p_csStartTime:PChar;p_nTimeUnit,p_nTimeLength,p_nStopFlag:Integer;p_csCardNo:PChar):integer;stdcall; external'XX.dll';
但是调用的时候一直报地址错误
Do Read Card Error!Access violation at address 10005549 in module 'xx.dll'. Read of address FFFFFFFF
下面是代码
var
csRoomNo: array[0..20] of char ;
csStartTime: array[0..20] of char ;
csCardNo:array[0..20] of char ;
//csRoomNo, csStartTime,csCardNo:pchar;
RoomNo, starttime,CardNum:String;
nTimeUnit,nStopFlag,nTimeLength,nComparTime:Integer;
ReturnValue: Integer;
begin
try
nStopFlag := -1;
RoomNo := 'FFFFFFFFFFFF';//
starttime := 'FFFFFFFF'; //
CardNum := 'FFFFFFFFFF' ; //
StrPCopy(csRoomNo, RoomNo);
StrPCopy(csStartTime,starttime) ;
StrPCopy(csCardNo,CardNum) ;
SDK_KPHotelAuthID(PChar(Option.HotelId));
ReturnValue := SDK_KPReadGuestCard(csRoomNo,csStartTime,nTimeUnit,nTimeLength,nStopFlag,csCardNo);