- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
阅读 Microsoft 关于 RegOpenKeyEx 和 RegCloseKey 的文档,我不确定如果 RegOpenKeyEx 失败是否需要调用 close 函数。
请指出我是否需要始终调用 RegCloseKey 或者是否只需要在 RegOpenKeyEx 返回 ERROR_SUCCESS 时调用它的明确来源。
引用:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724837%28v=vs.85%29.aspx
最佳答案
RegOpenKeyEx
仅在 ERROR_SUCCESS
时返回有效的 key 句柄是返回值。这是调用者负责关闭 key 的地方,否则不需要关闭并且 key 不会打开。这是关于关闭打开的句柄的责任的假定协议(protocol),尽管在 RegOpenKeyEx function 中没有明确提及。文档。
这在 API 样本中也是一致的。如果您在查看 MSDN 文章中的示例代码后不确定,这里是另一个:http://msdn.microsoft.com/en-us/library/aa384182%28VS.85%29.aspx
关于winapi - 如果 RegOpenKeyEx 不返回 ERROR_SUCCESS 我是否保证 HKEY 没有打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665222/
我正在尝试使用 winapi (0.2.8) 和 advapi32 (0.2.0) 包来编辑与鼠标加速相关的注册表。每次调用 advapi32::RegOpenKeyExA 时,程序都会崩溃,结果值会
我在读取注册表时遇到问题。此函数查找注册表路径中的条目数。效果很好,我已经测试过了: void findNumberEntries(registryTest &INSTALLKEY) { char b
我的程序应该枚举已安装的 OPOS 设备。它们列在注册表中,所以我使用 RegOpenKeyEx 如下: LONG lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE
我正在使用带有 mingw 的 Qt 来编写一个更改注册表的程序,但是当我调用时: RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\M
在工作中我遇到了我们产品的一个奇怪的行为,发现可以归结为Windows API RegOpenKeyEx 的奇怪行为。下面是我的测试代码: #include #include #include
MSDN 文档: http://msdn.microsoft.com/en-us/library/ms724897(VS.85).aspx 对于此函数可能返回的错误,奇怪地保持沉默。 如果 key 不
我正在尝试使用以下代码在 Windows 7 x64 下读取注册表项: static void ReadRegistryKey(HKEY hkey, TCHAR* path) { HKEY hkey2
我想写入一个注册表值 HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\11.0\Identity => key = tName , value="u
我需要从注册表中获取路径。除了我存储字符串路径的最后一部分外,以下代码有效。在 Visual Studio 2008 中运行调试器,char 数组有路径,但其他每个字符都是零。这导致字符串仅被分配第一
我想获取 HKEY_CLASSES_ROOT\\SOFTWARE\\Classes\\CLSID 键下的所有 CLSID 键。 我知道该 key 是合并的 HKEY_LOCAL_MACHINE\\SO
我对 RegOpenKeyEx() 函数有疑问。 lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpSubKeyName, 0, KEY_READ, &hkMo
在 Windows 7(32 位)中,如果我不是在管理员模式下运行,当我在 HKEY_LOCAL_MACHINE 上调用::RegOpenKeyEx 时,我总是会收到错误 5(访问被拒绝)。 这是我的
我正在尝试用 C 语言编写简单的程序,该程序可以从 Windows 注册表中写入和读取某些内容。 RegOpenKeyEx 的返回值 7 意味着什么? 我很难猜出它。是的,MSDN 说我可以使用 Fo
您好,我正在尝试读取为我提供 firefox.exe 路径的注册表值。这存储在 HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Mozilla Firefox 3.0.10\b
注册表函数在确实存在的键上返回“未找到”。我有正确的字符集并使用双反斜杠,所以这不是问题。 这是导出 key 的输出: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\N
我正在使用 this solution在 64 位机器上读取 32 位注册表。我是这样使用它的: GetKeyValue("\\software\\company", name); 其中 name 是
在 Microsoft Visual C++ 中,我有以下代码来访问注册表中的路径。然后,我使用 RegQueryValueEx 读取键 Installed 的值。到目前为止一切顺利,该值似乎是 1,
我有一段代码可以查找注册表项。在下面的当前形式中,它在 Vista 和 7 上运行良好,但在 XP 上返回错误代码 2 或 87。 当前代码(适用于 XP 以上版本): dwRet = RegOpen
我正在测试以下代码并收到错误:“RegOpenKeyEx 失败,错误 6:句柄无效”,我做错了什么?我正在使用 WinXP,MS VS 2010,以 Unicode 编译。 HKEY hKey; if
作为新手 C++ 程序员,我想在 Windows 注册表中设置一个值。我创建了这个教科书实现来完成这个,但我总是得到错误 998。我想我错过了一些非常简单明了的东西,但我不知道它是什么。 以普通用户或
我是一名优秀的程序员,十分优秀!