【发布时间】:2015-05-11 23:37:54
【问题描述】:
我正在编写一个需要创建/删除注册表项的程序。我遇到了一个问题,即创建密钥的代码返回 ERROR_INVALID_FUNCTION。
如果您查看注册表,则该键已创建,因此我不确定此错误的影响是什么。
The value of key is "SOFTWARE\\Wow6432Node\\COMPANY\\APPLICATION"
代码是:
int RegistryViewer::CreateRegistryLocation(const char* key)
{
HKEY hkey = 0;
int retVal = RegistryViewer::OpenRegistryLocation(key);
if(retVal != ERROR_SUCCESS)
{
retVal = RegCreateKeyEx(HKEY_LOCAL_MACHINE, CString(key), 0, NULL,REG_OPTION_NON_VOLATILE, KEY_WOW64_32KEY | KEY_WRITE, NULL, &hkey, NULL);
RegCloseKey(hkey);
}
return retVal;
}
是不是虽然创建了key,但是无法正确设置权限?
谢谢。
【问题讨论】:
-
我不知道为什么它会因特定错误而失败,但我怀疑它无论如何都会做你想做的事。当您指定
KEY_WOW64_32KEY时,不要明确引用“Wow6432Node”。重定向是自动的。只需使用"SOFTWARE\\COMPANY\\APPLICATION"。
标签: c++ windows error-handling registry