我在C ++ for Windows中进行编程,并且我有一个HANDLE
对象到一个互斥量定义为:
static HANDLE Instance_Mutex;
我想检查这个HANDLE
是否由互斥对象初始化;即是代码:
Instance_Mutex = CreateMutex(NULL,FALSE,NULL);
已被召唤。
如果它只是锁定它,如果没有,请在此HANDLE
上创建互斥锁,然后将其锁定。那么适当的方法是什么?
HANDLE
对象在尚未创建时是否具有特定值?
答案 0 :(得分:2)
如果HANDLE
是全局的,那么它将被初始化为零(即它将是nullptr
)。
然而,将它显式初始化为nullptr
将是一种优越的风格。
顺便说一下,nullptr
也是CreateMutex
失败时返回的内容。因此,即使在那时,这个不变量(nullptr
,如果HANDLE
不是互斥锁)也将保持不变。