Delphi到C ++ DLL中的引用参数

时间:2011-08-30 17:39:35

标签: delphi

我在Delphi中创建一个必须具有以下C ++结构的DLL。

DWORD Load(char* &Test);

因此测试必须是参考参数。我在Deplhi中尝试了'var'和'out',但是在使用DLL的C ++应用程序中出现错误。

2 个答案:

答案 0 :(得分:3)

该代码的字面翻译是这样的:

function Load(var Test: PAnsiChar): DWord; cdecl;

注意调用约定。如果你错过了,那么Delphi将第一个参数放在一个寄存器中,但是C ++代码希望它位于堆栈顶部。

答案 1 :(得分:1)

就像'Rob Kennedy'所说,它必须有'cdecl'。我用它解决了这个问题。这是固定代码

function Load(out Test : PAsniChar) : Integer; cdecl ; export;
begin
  Test := 'Test String';
end;

感谢您的帮助!