【发布时间】:2020-05-24 00:45:20
【问题描述】:
我遇到了一个值为 87 的错误代码,它与 Winerror.h 中的 ERROR_INVALID_PARAMETER 相关。 RegCreateKeyExA()函数的函数调用如下:
RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software/Test/RegistryTest", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &createdKey, &dispositionValueOfCreatedKey);
在哪里,
createdKey是HKEY类型的变量,声明为HKEY createdKey;
dispositionValueOfCreatedKey 是DWORD 类型的变量,声明为DWORD dispositionValueOfCreatedKey;
目前,我还没有尝试并且不知道有任何方法可以减轻此错误,因为我相信,上述函数调用满足this MSFT 函数文档中提到的所有参数要求。
提前致谢。
【问题讨论】:
-
组件分隔符是反斜杠 (
\),而不是正斜杠 (/)。 -
正如@IInspectable 指出的那样,您需要一个反斜杠分隔符,您必须使用 double 反斜杠指定它以避免“转义”下一个字符。
-
@IInspectable 哎呀!傻我!我想我真的需要休息一下!
-
@AdrianMole "...您必须使用 double 反斜杠指定它以避免“转义”下一个字符..." -除非你使用raw string literal,否则不需要双重转义,例如:
RegCreateKeyExA(..., R("Software\Basil\RegistryTest"), ...); -
@hecate 您可以发布答案并接受它,以明确和帮助正在搜索此问题的其他人,而不是添加有问题的解决方案。
标签: c++ c windows winapi registry