线程参数(50分)

  • 主题发起人 主题发起人 xiangyong.wen
  • 开始时间 开始时间
X

xiangyong.wen

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了很多参数的帖子,但都不能用。
procedure ThreadParam(p:pcahr);
begin
showmessage(string(p));
end;
//调用线程
procedure TForm1.ThreadParamClick(Sender: TObject);
var
x:pchar;
ThreadID:DWORD;
b:HWND;
begin
new(x);
x:='aaa';
b:=begin
Thread(nil,0,@ThreadParam,x,0,ThreadID);
end;

为什么传递的指针都是NIL?
 
function ThreadFunc(a:Pargu):longint;stdcall;
begin
TextOut(a.DC,10,10,a.s,length(a.s));
end;

procedure TForm1.Button1Click(Sender: TObject);
var ThreadID:DWORD;
b:Targu;
a:Pargu;
begin
b.DC:=GetDC(form1.handle);
b.s:=Pchar('hello');
a:=@b;
CreateThread(nil,0,@ThreadFunc,a,0,ThreadID);
end;
用createthread函数,第一个参数在95被忽略,为nil,在nt不为空时表示有子线程
使用返回值
 
定义部分
type
Targu=record
DC:HDC;
s:pchar;
end;
pargu=^Targu;
 
后退
顶部