RegCreateKeyEX returns ERROR_INVALID_FUNCTION
RegCreateKeyEX returns ERROR_INVALID_FUNCTION
我正在编写一个需要创建/删除注册表项的程序。我遇到一个问题,创建密钥的代码返回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_WRITE
权限分配它。由于RegCreateKeyEx
打开一个密钥(如果它已经存在),所以第一次检查毫无意义,并且可能一直在保存资源。我不确定第二件事是一个问题,但由于它在代码中发生了变化,我想我会提到它。
工作代码如下所示:
//Create a registry location
int RegistryViewer::CreateRegistryLocation(const char* key)
{
HKEY hkey = 0;
int retVal = RegCreateKeyEx(HKEY_LOCAL_MACHINE, CString(key), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WOW64_32KEY | KEY_ALL_ACCESS, NULL, &hkey, NULL);
if(retVal == ERROR_SUCCESS)
RegCloseKey(hkey);
return retVal;
}
eryksun 的评论对另一个问题很有用,因为我正在手动检查要使用的注册表部分,他使我能够删除该检查。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 如何解决"invalid conversion from 'char' to 'const char*'"
- Confusion: decltype vs std::function
- 为什么 std::function 可以作为 std::not2 的参数?
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 传递给std::function template的template参数究竟代表什么
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 将带有unique_ptr的可变 lambda 传递给 const&std::function
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- C++ "error: invalid use of void expression"
- "no matching function for call to 'Vector::Vector'"错误
- C++ "Invalid use of 'this' in non-member function" ,
- CMake + CUDA "invalid device function"即使使用正确的 SM 版本
- 如何修复库中的"invalid use of non-static member function" 导入另一个库
- C++ substr 方法 - "invalid use of ‘this’ in non-member function"
- "invalid use of non static member function" 这是什么?
- "error: invalid conversion from 'int*' to 'int' function"
- 函数指针生成'invalid use of non-static member function'错误