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

标签 c++ winapi registry

有人能告诉我这段代码有什么问题吗?没有错误。一切都返回 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);
}

最佳答案

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

参见 32-bit and 64-bit Application Data in the Registry .

关于C++ - RegCreateKeyEx 成功但没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14585286/

相关文章:

c++ - QLabel “break”单词如果太长

c++ - 64 位中指针和整数的模板重载问题

c++ - ShellExecute 没有打开 HTML 文件

python - 我如何知道在 HKEY_LOCAL_MACHINE 中创建注册表项的用户名

java - 在 Windows 操作系统中使用命令行查找与文件(.pdf)相关的默认程序的命令

c++ - 创建任意大小的多维 vector

c++ - 调整大小时不调用表单属性

winapi - VB4 AddressOf 等效项(向系统菜单添加项目)

c++ - Windows x64 上 32 位和 64 位应用程序之间的进程间通信

c# - 更改所有管理员壁纸