首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

线程怎么取指针的值

2012-03-13 
线程如何取指针的值?Delphi(Pascal) codefunction ThreadProc(pIPAddr: Pointer): DWORD stdcallvarlpIP

线程如何取指针的值?

Delphi(Pascal) code
function ThreadProc(pIPAddr: Pointer): DWORD; stdcall;var  lpIPAddr: PAnsiChar;begin // lpIPAddr := PChar(pIPAddr);  MessAgeBox(0, PAnsiChar(pIPAddr), nil, 0);end;var  lpIPAddr: PAnsiChar;begin  GetMem(lpIPAddr, 255);  ZeroMemory(lpIPAddr, 255);  StrCopy(lpIPAddr, '192.168.1.110');  hThread := CreateThread(nil, 0, @ThreadProc, @lpIPAddr, 0, dwThreadID);  WaitForSingleObject(hThread, INFINITE);  FreeMem(lpIPAddr);end;


[解决办法]
Delphi(Pascal) code
function ThreadProc(pIPAddr: Pointer): DWORD;var  lpIPAddr: PAnsiChar;begin  lpIPAddr := PChar(pIPAddr);  MessageBox(0, PAnsiChar(pIPAddr), nil, 0);end;procedure TForm1.FormCreate(Sender: TObject);var  lpIPAddr: PAnsiChar;  hThread: Integer;  dwThreadID: Cardinal;begin  GetMem(lpIPAddr, 255);  ZeroMemory(lpIPAddr, 255);  StrCopy(lpIPAddr, '192.168.1.110');  hThread := BeginThread(nil, 0, @ThreadProc, lpIPAddr, 0, dwThreadID);  WaitForSingleObject(hThread, INFINITE);  FreeMem(lpIPAddr);end;
[解决办法]
真要写成类的方法的话,就在线程内调用类的方法,如:

function ThreadProc(pIPAddr: Pointer): DWORD;
begin
Form1.ThreadProc1(pIPAddr)
end;

function TForm1.ThreadProc1(pIPAddr: Pointer): DWORD;
var
lpIPAddr: PAnsiChar;
begin
lpIPAddr := PChar(pIPAddr);
MessageBox(0, PAnsiChar(pIPAddr), nil, 0);
end;

热点排行