读书人

vc转delphi有关问题

发布时间: 2012-03-02 14:40:28 作者: rapoo

vc转delphi问题

C/C++ code
void RefreshThreadList (DWORD dwOwnerPID){        HANDLE        hThreadSnap = NULL;    BOOL          bRet        = FALSE;    THREADENTRY32 te32        = {0};    int px=0;    hThreadSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);    te32.dwSize = sizeof(THREADENTRY32);    if (Thread32First(hThreadSnap, &te32))    {        px=0;        do        {                        if (te32.th32OwnerProcessID == dwOwnerPID&&dwOwnerPID!=0)            {                lst[px]=te32.th32ThreadID;                px++;              }                    }        while (Thread32Next(hThreadSnap, &te32));    }    CloseHandle (hThreadSnap);}


请问谁帮我把这句vc转成delphi?

[解决办法]
Delphi(Pascal) code
var  lst: array[0..99] of DWORD;procedure RefreshThreadList (dwOwnerPID: DWORD );var  hThreadSnap: THandle;  te32: THREADENTRY32;  px: Integer;begin      hThreadSnap := 0;  fillchar(te32, sizeof(te32), 0);  px := 0;  hThreadSnap := CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);  te32.dwSize := sizeof(THREADENTRY32);  if (Thread32First(hThreadSnap, te32)) then begin    repeat      if (te32.th32OwnerProcessID = dwOwnerPID) and (dwOwnerPID <> 0) then begin        lst[px] := te32.th32ThreadID;        Inc(px);        end;    until (Not Thread32Next(hThreadSnap, te32));  end;  CloseHandle (hThreadSnap);end;
[解决办法]
点得太快了,少一个then
for int i:=0 to 99 do
if lst[i]=0 then
break;

读书人网 >.NET

热点推荐