2013-12-14 79 views
1

我測試下面的代碼並收到錯誤:「RegOpenKeyEx失敗,錯誤6:句柄無效」,我做錯了什麼? 我使用WinXP,MS VS 2010編譯爲Unicode。C + + RegOpenKeyEx錯誤6:句柄無效

HKEY hKey; 
if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey)) { 
    ErrorExit(TEXT("RegOpenKeyEx")); 
} 

回答

1

您的錯誤處理有錯誤。如發佈,此代碼可以從不生成適當的錯誤消息。 RegOpenKeyEx()與大多數winapi函數不同,它直接返回錯誤代碼,你用而不是用GetLastError()。

它需要被重寫,以這樣的:

HKEY hKey; 
    LONG err = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey); 
    if (err != ERROR_SUCCESS) { 
     ErrorExit2(err, TEXT("RegOpenKeyEx")); 
    } 
相關問題