我有一个dll,里面有个函数
int _stdcall Read(char CodeNum,char* Res,int* Status,int WaitTime=500);现在想在delphi进行引用,声明语法如下,不知道对不对?Function Read (CodeNum :longint; var Res:string; var Status:longint; WaitTime:longint):longint; stdcall; external 'XXX.dll';res是该函数返回的字符串类型 的结果,delphi中如何获取呢?

解决方案 »

  1.   

    Function Read(CodeNum:char;Res:Pchar;Status:PInteger;Const WaitTime:Integer=500):Integer;stdcall external 'xxx.dll'调用,WaitTime有默认值,可以不传值
    var
      s:char;
      i:PInteger;
      j,k:Integer;
    begin
      s:='A';
      j:=100;
      i:=@j
      P:=stralloc(1024);
      try
      k:=Read(s,P,i);  
        {showmessage(Inttostr(k));showmessage(P);}
      finally
        strdispose(P);
      end;
    End;
      

  2.   

    谢谢你回复。
    我要读取的是res的返回内容。是不是说地址没分配啊?所以导致错误