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;