首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

C++转Pascal的有关问题

2012-02-16 
C++转Pascal的问题?C++:#define DEV_CLASS_VOICE Voiceextern long __cdecl sr_getboardcnt(char *brdna

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)

热点排行