C++ C++;RegOpenKeyEx-错误6:句柄无效
我正在测试以下代码并收到错误:“RegOpenKeyEx失败,错误6:句柄无效”,我做错了什么? 我正在使用WinXP,MS VS 2010,用Unicode编译C++ C++;RegOpenKeyEx-错误6:句柄无效,c++,C++,我正在测试以下代码并收到错误:“RegOpenKeyEx失败,错误6:句柄无效”,我做错了什么? 我正在使用WinXP,MS VS 2010,用Unicode编译 HKEY hKey; if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey)) { ErrorExit(TEXT("RegOpenKeyEx
HKEY hKey;
if (!RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_ALL_ACCESS, &hKey)) {
ErrorExit(TEXT("RegOpenKeyEx"));
}
您的错误处理中存在错误。如前所述,此代码永远无法生成正确的错误消息。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"));
}
您的错误处理中存在错误。如前所述,此代码永远无法生成正确的错误消息。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"));
}