gpt4 book ai didi

c++ - 我如何知道 HANDLE 对象是否已初始化?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:21 32 4
gpt4 key购买 nike

我正在为 Windows 使用 C++ 编程,并且我有一个 HANDLE 对象到定义为的互斥量:

static HANDLE Instance_Mutex;

我想检查这个 HANDLE 是否由互斥对象初始化;即是代码:

Instance_Mutex = CreateMutex(NULL,FALSE,NULL);

已经被调用了。

如果只是锁定它,如果不是,则在这个HANDLE 上创建互斥锁,然后锁定它。那么什么是合适的方法呢?

HANDLE 对象在还没有被创建时是否有特定的值?

最佳答案

如果 HANDLE 是全局的,那么它将被零初始化(即它将是 nullptr)。

然而,将其显式初始化为 nullptr 会是更好的风格。

顺便说一句,nullptr 也是 CreateMutex 在失败时返回的内容。所以这个不变量(nullptr 如果 HANDLE 不是互斥量)即使到那时也会被保持。

关于c++ - 我如何知道 HANDLE 对象是否已初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280878/

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