CreateThread,如何把调用函数的参数传递进去?

ynduanlian 2009-11-09 12:34:47
用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"
...全文
136 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2009-11-09
  • 打赏
  • 举报
回复

procedure Test1(Str: PChar);stdcall
begin
Form1.Memo1.Lines.Add(Str+'xxx');
end;
ynduanlian 2009-11-09
  • 打赏
  • 举报
回复
上面这个结果也只是"XXX",参数没传进去?
ynduanlian 2009-11-09
  • 打赏
  • 举报
回复
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;

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧