gpt4 book ai didi

c++ - 检查 HKEY HANDLE 是否有效?

转载 作者:行者123 更新时间:2023-11-28 02:39:59 25 4
gpt4 key购买 nike

我正在使用一个本质上执行此操作的函数:

HANDLE someHandler;
RegCloseKey((HKEY) someHandler);

RegCloseKey() 返回 ERROR_SUCCESS 后,我检查以下内容:

if (someHandler == INVALID_HANDLE_VALUE)
{ ..... }

但我现在发现上述条件永远不会成立。我尝试用 null, null pointer 替换 INVALID_HANDLE_VALUE 的检查,但它们都失败了。如何检查句柄是否有效?

最佳答案

RegCloseKey 不会更改句柄值。它只是关闭 handle 。关闭后,变量 someHandler 会记住 handle 值是什么,但它没有用。与其对其进行测试,不如将其设置为无效值:

RegCloseKey(someHandler);
someHandler = INVALID_HANDLE_VALUE;

这将防止您在关闭它后不小心尝试使用它。同样的模式可以应用于动态内存、文件句柄等。您也可以考虑使用为 C++ 设计的框架,它为您隐藏了一些资源管理的细节。例如,ATL 为注册表访问提供了比面向 C 的 Windows API 所能提供的更自然的 C++ 接口(interface)。

关于c++ - 检查 HKEY HANDLE 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308973/

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