C++转Pascal的有关问题
C++转Pascal的问题?
C++:
#define DEV_CLASS_VOICE "Voice"
extern long __cdecl sr_getboardcnt(char *brdname, int *brdcnt); //一个库文件里引出的函数
C++调用如下
int numvoxbrds = 0;
sr_getboardcnt(DEV_CLASS_VOICE,&numvoxbrds); 函数返回成功,不等于-1.
Pascal:
const
DEV_CLASS_VOICE = 'Voice';
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
pascal调用如下
var
numvoxbrds: integer;
begin
numvoxbrds := 0;
sr_getboardcnt(DEV_CLASS_VOICE, @numvoxbrds); 函数返回不成功,等于-1;
end;
请问各位高手,这是为什么,难道是参数Char * 转成PChar格式不对.帮忙指点一下.
------解决方案--------------------
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
implementation
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl; external '库文件名.dll';
------解决方案--------------------
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
修改成
function sr_getboardcnt(brdname: PChar; var brdcnt: integer): LongInt; cdecl;
------解决方案--------------------
那你直接这样调用:
sr_getboardcnt('Voice', @numvoxbrds);
试试。
------解决方案--------------------
sr_getboardcnt(PChar(DEV_CLASS_VOICE), @numvoxbrds)
C++:
#define DEV_CLASS_VOICE "Voice"
extern long __cdecl sr_getboardcnt(char *brdname, int *brdcnt); //一个库文件里引出的函数
C++调用如下
int numvoxbrds = 0;
sr_getboardcnt(DEV_CLASS_VOICE,&numvoxbrds); 函数返回成功,不等于-1.
Pascal:
const
DEV_CLASS_VOICE = 'Voice';
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
pascal调用如下
var
numvoxbrds: integer;
begin
numvoxbrds := 0;
sr_getboardcnt(DEV_CLASS_VOICE, @numvoxbrds); 函数返回不成功,等于-1;
end;
请问各位高手,这是为什么,难道是参数Char * 转成PChar格式不对.帮忙指点一下.
------解决方案--------------------
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
implementation
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl; external '库文件名.dll';
------解决方案--------------------
function sr_getboardcnt(brdname: PChar; brdcnt: PINT): LongInt; cdecl;
修改成
function sr_getboardcnt(brdname: PChar; var brdcnt: integer): LongInt; cdecl;
------解决方案--------------------
那你直接这样调用:
sr_getboardcnt('Voice', @numvoxbrds);
试试。
------解决方案--------------------
sr_getboardcnt(PChar(DEV_CLASS_VOICE), @numvoxbrds)