C++ RegOpenKeyEx给出错误2或错误161,两种方式都失败
我正在尝试从Windows服务器读取注册表项,但我似乎无法让它使用或不使用斜杠。如果我尝试:C++ RegOpenKeyEx给出错误2或错误161,两种方式都失败,c++,winapi,registry,windows-server,C++,Winapi,Registry,Windows Server,我正在尝试从Windows服务器读取注册表项,但我似乎无法让它使用或不使用斜杠。如果我尝试: lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey); 它给出了错误161,这是错误路径名。(指定的路径无效。) 好吧,这样试试看: lError = RegOpenKeyEx(HKEY_LOCAL_MACHIN
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "\\SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
它给出了错误161,这是错误路径名。(指定的路径无效。)
好吧,这样试试看:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Company\\Product\\ServerName", 0, KEY_QUERY_VALUE, &hDomainKey);
我得到错误2,找不到错误文件。(系统找不到指定的文件。)
我可以打开
regedit
,通过路径My Computer\HKEY\u LOCAL\u MACHINE\SOFTWARE\Company\Product
,nameServerName
,然后键入REG\u SZ
,查看我想要检索的值。我在这里遗漏了什么?打开键,而不是值:
lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Company\\Product",
0,
KEY_QUERY_VALUE,
&hDomainKey);
然后使用(或)读取值。+1。请注意,RegGetValue仅适用于Vista和更高版本。考虑<代码> ReqQuyValue或<代码> ReqQueRealEXEX < /C> >如果您需要支持早于此,但请注意零终止问题。我在我发布的代码后面添加了
RegQueryValueEx
,但我误解了这两个调用之间的关系。谢谢过了几分钟,我会接受的。