repopenKeyex在Windows 8.1上返回2
regopenkeyex returns 2 on Windows 8.1
我有一个32位程序,该程序在同一商店的两个车道中运行。该程序试图打开查询的注册表密钥。操作系统是Windows 8.1 64位。
在一个车道上它成功,另一个车道失败,repopenKeyex返回2. getlasterror返回0。
它试图打开的钥匙在WOW6432NODE下。
该程序在两台计算机上的同一Windows用户下运行,两者都存在。UAC设置为"永不通知"(最低(,Windows版本是相同的。一切都应该是相同的...
我故意没有指定key_wow64_64key,因为代码应该没有它。但是即使我确实使用它,我也会得到相同的结果。
是什么造成这一点?
代码:
rc = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
szKey,
0,
KEY_QUERY_VALUE,
&m_hKey);
谢谢。
您实际上需要阅读有关您在MSDN上使用的功能的信息。注册表功能直接返回错误代码,它们不使用GetLastError
!
2是 ERROR_FILE_NOT_FOUND
,所以无论您在 szKey
中隐藏什么都不是有效的子钥匙路径。
WOW6432NODE是您真正不应该使用的保留关键名称,如果需要在64位应用程序中访问32位注册表视图,请使用KEY_WOW64_32KEY
。默认情况下,一个32位应用程序读取WOW6432NODE密钥的键。
使用过程监视器确保您访问正确的键。
相关文章:
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 几个 Nt 函数在 Windows 7 x32 上返回STATUS_WAIT_0
- 尝试在 Windows 上重定向 stdout 和 stderr——_fileno(stdout) 返回 -2
- 从我的2d数组中的一列返回的字符串值被压缩为一个字符串(在Mac os上打开Windows txt文件)
- Qt5 哈希函数在 Windows 7 和 Windows10 上不会返回相同的哈希
- Windows 函数"GetCursorInfo"返回成功,但光标的句柄为 NULL
- C++ 即使数据可用,Windows recv() 也不会返回
- 如何检查 CNG Windows API 是否返回符合 FIPS 的算法实现
- C++ Windows 返回与退出进程
- repopenKeyex在Windows 8.1上返回2
- Windows句柄始终返回Invalid_handle_value
- 检查Windows激活状态返回错误的值
- 没有返回类型的静态函数可以通过Windows上的编译,但不能传递Linux上的编译
- 使用Outlook 2016:MAPISendMail在Windows应用程序中失败,并返回"MAPI_E_FAILURE"作为错误代码
- Windows HANDLE RAII 管理,如果返回布尔值而不是句柄怎么办?
- 为什么 CoCreateInstance 在某些 Windows 上返回REGDB_E_CLASSNOTREG?
- FCGX_GetParam REQUEST_METHOD可以在Windows中使用,但在Linux中返回NULL
- 创建 CTime @ 2am 不会返回正确的值(Windows CE,C++)
- 为什么返回Windows BOOL数据类型而不返回int