有人能告诉我这段代码有什么问题吗?没有错误。一切都返回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);
}
答案 0 :(得分:21)
由于应用程序在64位操作系统上为32位,因此实际上将在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
下创建注册表项。
答案 1 :(得分:0)
你能尝试使用第5和第6个参数作为REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS