我在Delphi中创建一个必须具有以下C ++结构的DLL。
DWORD Load(char* &Test);
因此测试必须是参考参数。我在Deplhi中尝试了'var'和'out',但是在使用DLL的C ++应用程序中出现错误。
答案 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;
感谢您的帮助!