我有一个在 C++ 中似乎无法读取的注册表项,但它显示在Regedit
.
使用以下 C++ 片段:
openResult=RegOpenKeyEx( HKEY_LOCAL_MACHINE, _TEXT("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"), 0, KEY_READ, &root);
readResult1=RegQueryValueEx(root, _TEXT("InstallPath"), NULL, NULL, data1, &size);
readResult2=RegQueryValueEx(root, _TEXT("fake_entry"), NULL, NULL, data2, &size);
ERROR_FILE_NOT_FOUND
我第二次RegQueryValueEx()
打电话时收到错误 2 。
如下图所示,我的fake_entry
存在。
我通过创建此条目Regedit
。
Microsoft's Registry Keys Affected by WOW64不包括我要读取的位置,如下图所示,我fake_entry
不在该Wow6432Node
位置。
- 是的,我知道这不是我应该更改的注册表位置。我在调试代码时偶然发现了这一点,并且很好奇为什么我的添加
fake_entry
不起作用。 - 是的,我读过Registry Redirector。
- 是的,我读过这个问题。
- 是的,我尝试阅读
fake_entry
时SOFTWARE\\Wow6432Node\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full
出现同样的错误。
在 Visual Studio 2010 中运行 Windows 7、64 位、C++,使用 ASCII 字符编码。
我误解了注册表重定向器吗?我的代码有问题吗?注册表的某些部分是否有某种权限设置?我显然错过了一些东西。请指出我正确的方向。