我正在测试以下代码并收到错误:“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"));
}

最佳答案

您的错误处理中有错误。如前所述,此代码永远不会生成正确的错误消息。 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"));
  }

关于c++ - C++ RegOpenKeyEx-错误6:句柄无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20589634/

10-13 08:15