gpt4 book ai didi

c++ - 在预定义的注册表项句柄上调用 RegCloseKey

转载 作者:太空狗 更新时间:2023-10-29 20:53:12 24 4
gpt4 key购买 nike

考虑围绕原始 HKEY 句柄的 C++ 包装类的情况。

包装类有一个构造函数重载,将 HKEY 句柄作为输入:构造的对象拥有输入原始句柄的所有权。
析构函数在包装句柄上调用 RegCloseKey(),存储在 HKEY m_hKey 数据成员中。

现在,考虑将预定义句柄(如 HKEY_CURRENT_USER)传递给构造函数重载的情况。 HKEY_CURRENT_USER 值分配给 m_hKey 成员。

析构函数对该预定义键调用 RegCloseKey()。在我的实验中,API 在这种情况下返回 0,意思是:成功。那么,可以在预定义的注册表项句柄上调用 RegCloseKey() 吗?或者是否应该实现进一步检查,例如:

RegistryKey::~RegistryKey()
{
if ((m_hKey != nullptr) && !IsPredefinedKey(m_hKey))
::RegCloseKey(m_hKey);
}

最佳答案

RegOpenKey function 的 MSDN 文档推断您只想在您以编程方式创建的句柄上调用 RegCloseKey

...如果 key 不是预定义的注册表项之一,请在使用完句柄后调用 RegCloseKey 函数。

关于c++ - 在预定义的注册表项句柄上调用 RegCloseKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43525828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com