用CreateThread来调用带参数Str的函数Test1,如何传参数Str?下面的程序为什么不能将Str传到Test1函数;procedure Test1(Str: String);
begin
  Form1.Memo1.Lines.Add(Str+'xxx');
end;procedure TForm1.Button1Click(Sender: TObject);
var
  ID: THandle;
  Str: String;
begin
  Str:='127.0.0.1';
  CreateThread(nil,0,@Test1,@Str,0,ID);
end;执行以后Memo1中是“xxx"

解决方案 »

  1.   

    procedure Test1(Str: PChar);
    begin
      Form1.Memo1.Lines.Add(Str+'xxx');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      ID: THandle;
      Str: String;
    begin
      Str:='127.0.0.1';
      CreateThread(nil,0,@Test1,PChar(Str),0,ID);
    end;
      

  2.   

    上面这个结果也只是"XXX",参数没传进去?
      

  3.   


    procedure Test1(Str: PChar);stdcall
    begin
      Form1.Memo1.Lines.Add(Str+'xxx');
    end;