在MSDN中的IsMemberOfAdministratorsGroup例如,有這樣的代碼:如果OpenThreadToken和OpenProcessToken都失敗,爲什麼需要清理?
if (!OpenThreadToken (GetCurrentThread(), TOKEN_QUERY|TOKEN_DUPLICATE, TRUE, &hToken))
{
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY|TOKEN_DUPLICATE, &hToken))
{
lastErr = GetLastError();
goto CLEANUP;
}
}
....
CLEANUP:
if (hToken)
{
CloseHandle (hToken);
hToken = NULL; // Set variable to same state as resource.
}
我不明白爲什麼我們需要嘗試關閉該令牌句柄,如果OpenThreadToken()或OpenProcessToken()失敗。當兩個函數失敗時是否有特殊情況,但是句柄是否分配?或者它只是一個錯字(反正他們是人類)?
謝謝,如何在StackOverflow.com中正確地格式化代碼? – Phantom 2010-09-10 17:24:48
當您輸入Qs和As時,在表單工具欄中有一個代碼按鈕(010101等) - 選擇您想要格式化的代碼,然後按此按鈕 – 2010-09-10 17:27:22
或使用額外的4個空格縮進代碼。 – pmg 2010-09-10 17:29:59