请问线程函数带参数应该怎样写

yangling18 2005-11-17 08:49:08
我有一个函数 function ThreadFuc(t:string):string 要声明为线程函数,可是createthread函数传递的是线程函数的地址,那么ThreadFuc的参数应该怎样传递呢
...全文
319 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿呆_ 2005-11-19
  • 打赏
  • 举报
回复
线程函数的那个参数就是你用CreateThread创建线程时传进去的那个变量。

另外不可以用function ThreadFuc(t:string):string;作为线程函数,
必须用function ThreadFunc(t: string): string; stdcall;才行。

例如可以用如下方法将局部字符串变量s传给线程作为参数:
var
s: string;
id: Cardinal;
begin
s := '123456';
CreateThread(nil, 0, @ThreadFunc, pointer(s), 0, id);
Integer(s) := 0; // 欺骗delphi编译器以防止其自动释放局部变量s
end;
yangling18 2005-11-18
  • 打赏
  • 举报
回复
我是说怎么传递函数里面的参数t,pInfo能传递吗
zhuangbx220 2005-11-17
  • 打赏
  • 举报
回复
//线程函数用指针就可以了
function ThreadFuc(t:PChar):string;
begin

end;

var
tid:dword;
pInfo:PChar

CreateThread(nil,0,@SendPass,pInfo,0,tid);
beyondtkl 2005-11-17
  • 打赏
  • 举报
回复
yun 怎么到处发贴呀。。。

1,184

社区成员

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

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