在delphi中怎么实现象C++的our_str的功能,如以下代码在delphi中怎么实现:
/* C语言函数定义:
int __stdcall TestFunc1(int in_int, int *out_int, float in_float, float *out_float, char* in_str, char* out_str)
{
*out_int = in_int + 1;
*out_float = in_float + 1;
strcpy(out_str, in_str);
strcat(out_str, " - Added");
return 123;
} */ 

解决方案 »

  1.   

    function TestFunc(......,out_str : PChar
      

  2.   

    如果这样的话,那string类型怎么转换成PAnsiChar类型呢?
      

  3.   

    pchar(str)
    int*    pinteger
    float*  pDouble
      

  4.   

    被调用者:
    function GetMacP(Out_str: Pchar):integer ; stdcall;
    var
    MacString:string;
    flag:TReplaceFlags;
    begin
    flag:=[rfReplaceAll];
    MacString:= '00:17:1D:61';
    Out_str:=Pchar(StringReplace(MacString,':','', Flag));
    Result:=1;
    end;
    调用者:
    Function GetMacP(x:Pchar)  : integer ; stdcall ; external 'test.dll' ;
    procedure TForm1.Button3Click(Sender: TObject);
    var
    rez:pchar;
    rec:integer;
    begin
    rec:=GetMacP(rez);
    ShowMessage (rez);
    end;调用后为什么没把Out_str传递给调用者呢?只传了一个字符。是哪里出错了?