Delphi调用C++动态链接库的一个有关问题 long

Delphi调用C++动态链接库的一个问题 long *
C++描述:
BOOL ReadCard(char * room_name, char * checkin_date, char * checkout_date, long * card_no)

Delphi描述:
function ReadCard(room_no, start_date, end_date:PChar; var card_no: Cardinal):Boolean;stdcall; external ...

实际Delphi调用时:
function ReadCard(room_no, start_date, end_date:PChar; var card_no: Cardinal):Boolean;stdcall; external ...
function ReadCard(room_no, start_date, end_date:PChar; card_no: Cardinal):Boolean;stdcall; external ...

这些都不行,把Cardinal换成Integer,LongInt也试过,去掉和加上Var都试过,都不行,哪位帮忙解决下,十分感谢。

------解决方案--------------------
function ReadCard(room_no, start_date, end_date:PChar; card_no: PLongint):BOOL;stdcall;
确定是stdcall;吗,换cdecl试试看
------解决方案--------------------
声明有问题:


C++描述:
BOOL ReadCard(char * room_name, char * checkin_date, char * checkout_date, long * card_no)

Delphi中改成如下:

function ReadCard(room_no, start_date, end_date:PChar; card_no: PInteger):Boolean;stdcall; external ...

调用如下:
var
room_no, start_date, end_date:array [0..128] of Char;
card_no:Integer;

ReadCard(room_no, start_date, end_date,@card_no);