问一个createThread函数的线程函数参数如何传递的问题

参数类型:
   _ParamTOHandleStreamMsgThread=record
      addr:TAddress;
      PInfo:Pointer;
      size:integer;
    end;
启动线程的代码:
var
 param:_ParamTOHandleStreamMsgThread
begin
...............
..............
 param.addr:=addr;
 param.PInfo:=pInfo;
 param.size:=i;
 threadhandle1:=CreateThread(nil,0,@HandleSTREAMMSGThread,@param,0,threadid1);
 CloseHandle(threadhandle1);

线程函数:
procedure HandleSTREAMMSGThread(para:_ParamTOHandleStreamMsgThread);stdcall;
begin
  slidwin.onRecvMessage(para.addr, para.PInfo, para.size);
  //程序运行时,发现para没有被传进来,访问para出错。 
end;

 

最佳答案:

PParamTOHandleStreamMsgThread   = ^_ParamTOHandleStreamMsgThread;

HandleSTREAMMSGThread(para:PParamTOHandleStreamMsgThread)

para^.应该可以访问

转自:http://bbs.csdn.net/topics/80356403

posted @ 2012-11-23 10:50  stma  阅读(492)  评论(0)    收藏  举报