别人提供的一个动态库,有个函数,请帮我看一下怎么调用? ( 积分: 20 )

  • 主题发起人 国色天香
  • 开始时间

国色天香

Unregistered / Unconfirmed
GUEST, unregistred user!
别人提供一个动态库,并有个说明文档是这样的:
---------------------------------------
int BUSIN( char* inputData,
char* outputData)
输入参数:inputData
输出参数:outputData char*
返回值: 成功 0 失败 -1
---------------------------------------------

我的调用方法是:
function BUSIN(inputData,outputData:pchar):integer; stdcall; external 'SiInt.dll';

。。。。。。。


procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
ss:pchar;
begin
if edit1.text='' then exit;
i:=BUSIN(pchar(edit1.text),ss);
if i=0 then
memo1.Lines.Add(ss);
end;

请帮我看一下问题在哪里,上面的代码编译通过,执行会报内存错误。

outputData 应该是个输出参数,问题是我怎样得到这个输出参数?
 
你的问题同此贴是一样的:
http://delphibbs.com/delphibbs/dispq.asp?lid=3838912
 
getmem(ss,1024);
i:=BUSIN(pchar(edit1.text),ss);
....
freemem(ss);
 
感谢,果然是要预先分配内存,问题解决
 
顶部