delphi 调用DLL问题。
文档说明上写的:
int BUSINESS_HANDLE( char* inputData,char* outputData)
输入参数:inputData
输出参数:outputData
返回值: 成功 =0 失败 <0
在delphi里我是这么写的:
function BUSINESS_HANDLE(inputData:PChar;var outputData:PChar):Integer;cdecl;
external 'SiInterface.dll';
调用的时候:
var
a:Integer;
inputData,outputData:PChar;
outstr:string;
begin
try
inputData:=pchar('XXXXXX');
GetMem(outputData,4096);
a:=BUSINESS_HANDLE(inputData,outputData);
outstr:=outputData;//string(outputData);
if a=0 then
begin
showmessage('调用成功。');
showmessage('成功返回信息:'+#13+outstr);
end
else
begin
showmessage('调用失败。');
end
finally
FreeMem(outputData,4096);
end;
end;
//调用之后,a=0 弹出的是“调用成功。”然后为什么程序就马上直接死掉了呢?没有运行到:成功返回信息。。。这一步
我是无法单步跟踪的。。。一弹出“调用成功。”提示框后,程序就马上被结束进程了,不知道怎么回事,请大家帮帮忙看看。谢谢了~~
另:outputData 分配内存换了好几种方式,都是不行的。。。。。