I'm creating a DLL in Delphi that must have the following C++ structure.
DWORD Load(char* &Test);
So the test must be a reference parameter. I tried '开发者_JS百科var' and 'out' in Deplhi, but I get an error in my C++ application that uses the DLL.
A literal translation of that code is this:
function Load(var Test: PAnsiChar): DWord; cdecl;
Notice the calling convention. If you're missing that, then Delphi places the first parameter in a register, but the C++ code expects it on the top of the stack.
Like 'Rob Kennedy' stated, it must have 'cdecl'. I fixed the problem by using that. Here is the fixed code
function Load(out Test : PAsniChar) : Integer; cdecl ; export;
begin
Test := 'Test String';
end;
Thanks for the help!
精彩评论