编程论坛
注册
登录
编程论坛
→
Delphi论坛
大家好,请教 DELPHI API 多线程中传递多个参数写法。
lsgzs
发布于 2014-06-16 09:33, 4244 次点击
大家好,请教个问题。
DELPHI中api创建多线程怎么传递多个参数
如
getf(a,b:Tarr);
BeginThread(nil,0,@getf,nil,0,Tid);
getf(a,b:Tarr);这里的A和B是个动态数组
该怎么写。
2 回复
#2
haiou327
2014-06-23 17:09
Tarr = array of Byte;
pr = record
ta, tb: Tarr;
end;
PPr = ^pr;
var
h: THandle;
Procedure getf(p: PPr); stdcall;
begin
Form1.Button1.Caption := Format('Ta:%d+1, Tb:%d+1', [High(P.ta), High(P.tb)]);
Dispose(P);
ExitThread(0);
end;
procedure Tform1.Button1Click(Sender: TObject);
var
pc: PPr;
tid: Cardinal;
begin
New(pc);
SetLength(PC.ta, 10);
SetLength(pc.tb, 12);
try
h := createThread(nil, 0, @getf, pc, 0, Tid);
finally
if h <> 0 then CloseHandle(h);
end;
end;
[
本帖最后由 haiou327 于 2014-6-23 21:35 编辑
]
#3
lsgzs
2014-10-23 21:05
以下是引用
haiou327
在2014-6-23 17:09:09的发言:
Tarr = array of Byte;
pr = record
ta, tb: Tarr;
end;
PPr = ^pr;
var
h: THandle;
Procedure getf(p: PPr); stdcall;
begin
Form1.Button1.Caption := Format('Ta:%d+1, Tb:%d+1', [High(P.ta), High(P.tb)]);
Dispose(P);
ExitThread(0);
end;
procedure Tform1.Button1Click(Sender: TObject);
var
pc: PPr;
tid: Cardinal;
begin
New(pc);
SetLength(PC.ta, 10);
SetLength(pc.tb, 12);
try
h := createThread(nil, 0, @getf, pc, 0, Tid);
finally
if h <> 0 then CloseHandle(h);
end;
end;
感谢您的帮忙,我一阵子没上论坛。看到您的帮助。感谢。
1