C++ RegCreateKeyExA函数返回错误\无效\参数(错误代码87)
我遇到了一个值为87的错误代码,它与error_INVALID_参数相关,如所示。对C++ RegCreateKeyExA函数返回错误\无效\参数(错误代码87),c++,c,windows,winapi,registry,C++,C,Windows,Winapi,Registry,我遇到了一个值为87的错误代码,它与error_INVALID_参数相关,如所示。对RegCreateKeyExA()函数的函数调用如下: RegCreateKeyExA(HKEY_本地_机器,“软件/测试/注册表测试”,0,NULL,REG_选项非易失性,KEY_ALL_访问,NULL,&createdKey,&dispositionValueOfCreatedKey) 在哪里, createdKey是HKEY类型的变量,声明为HKEY-createdKey createdkey的dispos
RegCreateKeyExA()
函数的函数调用如下:
RegCreateKeyExA(HKEY_本地_机器,“软件/测试/注册表测试”,0,NULL,REG_选项非易失性,KEY_ALL_访问,NULL,&createdKey,&dispositionValueOfCreatedKey)代码>
在哪里,
createdKey
是HKEY
类型的变量,声明为HKEY-createdKey代码>
createdkey的dispositionValueOfCreatedKey
是DWORD
类型的变量,声明为DWORD dispositionValueOfCreatedKey代码>
目前,我还没有尝试过,也不知道有什么方法可以减轻这个错误,因为我相信,上述函数调用满足函数的MSFT文档中提到的所有参数要求
提前感谢。注册表路径的组件必须用反斜杠(\
)分隔,如果路径字符串未指定为原始字符串文字,则必须对其进行转义,以避免转义下一个对应字符,如R(“dir\u 1\dir\u 2\dir\u 3”)
(MSFT编译器除外)或R“dir\u 1\dir\u 2\dir\u 3”
组件分隔符是反斜杠(\
),而不是正斜杠(/
)。正如@IInspectable所指出的,您需要一个反斜杠分隔符,必须使用双反斜杠来指定,以避免“转义”下一个字符。@IInspectable哇!我真傻!我想我真的需要休息一下@AdrianMole“…您必须使用双反斜杠来指定,以避免“转义”下一个字符…”-除非使用,否则不需要进行双上转义,例如:RegCreateKeyExA(…,R(“Software\Basil\RegistryTest”),…)
@hecate您可以发布一个答案,并接受它,因为其他人正在搜索此问题,而不是添加有问题的解决方案。