大哥们帮个忙呀(100分)

  • 主题发起人 主题发起人 horneye
  • 开始时间 开始时间
H

horneye

Unregistered / Unconfirmed
GUEST, unregistred user!

我先创造一个线程
hThread := begin
Thread(nil,0,@StartSignCheck, nil,0,ThreadID);
这个线程是用来执行函数startsigncheck的
这个函数的定义如下
function StartSignCheck:longint;stdcall;
var
iChannelNo : integer;
begin
StartSigCheck(iChannelNo);
Result := iChannelNo;
end;
请问我怎么在这条语句
hThread := begin
Thread(nil,0,@StartSignCheck, nil,0,ThreadID);
下面获得这个函数的返回值?
 
查waitforsingleobject这个api,可得出答案.
 
方法很多,很可以自定义一个消息
wm_threadresult:WM_USEER+1;
在线程结束执行的时候发回你的窗口.
sendmessage(mainform.handle,wm_threadresult,result,0);
 
如果仅有一个数据要传回去,
(1)你可以用消息了,其WParam或LParam都可以用来传你要的函数返回值,
方法是将函数返回值放在PostMessage()或SendMessage()中的相应位置;
(2)你可以定义一个全局变量,线程体将函数返回值放入该变量即可;
方法还有很多,,,如注册表,等
如果你的数据量很大,
(1)你可以用WM_COPYDATA消息,你可以到SDK中找到详细的说明;
(2)用文件,可以是一般的文件或内存映射文件,
 
笨!!!
我也不知道:)
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部