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

C++ C++;-RegCreateKeyEx成功但没有结果,c++,winapi,registry,C++,Winapi,Registry,有人能告诉我这个代码出了什么问题吗?没有错误。所有内容都返回ERROR\u SUCCESS,但在register中看不到任何更改 void Utils::writePath(LPCTSTR data) { HKEY hkey; DWORD dwDisposition; if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\aaTestCompany\\testApp"), 0, NULL,

有人能告诉我这个代码出了什么问题吗?没有错误。所有内容都返回ERROR\u SUCCESS,但在register中看不到任何更改

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\u LOCAL\u MACHINE\SOFTWARE\Wow6432Node
下创建


请参阅。

您能否尝试使用第5和第6个参数作为REG\u选项\u非易失性,KEY\u ALL\u访问

这是64位操作系统上的32位应用程序?是的,这是64位操作系统上的32位应用程序。它很重要吗?LPCTSTR=指向常量字符串的长指针-这是一个免费的FYISee。有可能重复令人惊讶的是,有多少人不阅读/不知道这一点。在网上的许多地方,每周都会有好几次这样的问题。@Deanna:并不是每个人都精通每一件事;)要在实际指定的路径下设置密钥,应该做些什么?@user1198065请阅读文档。链接所指向的页面提供的参考信息正是您要查找的信息。在上已经可以找到相同的信息。提示:
KEY\u WOW64\u 64KEY
/
KEY\u WOW64\u 32KEY
在我的例子中,CLSID正在HKLM\Wow6432Node注册(无软件路径)。