C++ - RegCreateKeyEx成功但没有结果

Cha*_*son 8 c++ registry winapi

谁能告诉我这段代码有什么问题?没有错误.一切都返回ERROR_SUCCESS但是在寄存器中看不到任何变化.

void Utils::writePath(LPCTSTR data)
{
    HKEY hkey;
    DWORD dwDisposition;
    if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, 
      TEXT("SOFTWARE\\aaTestCompany\\testApp"), 
      0, NULL, 0, 
      KEY_WRITE, NULL, 
      &hkey, &dwDisposition) == ERROR_SUCCESS) 
    {
        long setRes = RegSetValueEx (hkey, "testPath", 0, REG_SZ, (LPBYTE)data, strlen(data)+1);
         if (setRes == ERROR_SUCCESS) {
                printf("Success writing to Registry.");
            } else {
                printf("Error writing to Registry.");
            }
        RegCloseKey(hkey);
    }
    else
        MessageBox(NULL,"error","",0);
}
Run Code Online (Sandbox Code Playgroud)

hmj*_*mjd 21

由于应用程序在64位操作系统上为32位,因此实际上将在下方创建注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node.

请参阅注册表中的32位和64位应用程序数据.

  • 令人惊讶的是有多少人不读/知道这一点.它在网上很多地方每周被问过好几次. (2认同)
  • @Deanna:不是每个人都是所有人的专家;) (2认同)