我怎么知道HANDLE对象是否被初始化
How do I know if HANDLE object been initialized?
我正在用c++为Windows编程,并且我有一个HANDLE
对象到一个互斥锁定义为:
static HANDLE Instance_Mutex;
我想检查这个HANDLE
是否被互斥对象初始化;也就是代码:
Instance_Mutex = CreateMutex(NULL,FALSE,NULL);
已被调用。
如果它只是锁定它,如果不是,在这个HANDLE
上创建互斥锁,然后锁定它。那么怎样做才是合适的呢?
未创建HANDLE
对象时是否有特定的值?
如果HANDLE
是一个全局变量,那么它将被初始化为零(即它将是nullptr
)。
不过,显式初始化为nullptr
将是更好的样式。
顺便说一下,nullptr
也是CreateMutex
失败时返回的值。所以这个不变量(如果HANDLE
不是互斥对象,则nullptr
)将被保持。
相关文章:
- 列表初始化是否将原子初始化为零
- 使用函数声明进行函数指针初始化 - 是否可能
- 值初始化是否适用于原子对象?
- 聚合的值初始化是否使用其成员的默认初始值设定项?
- C 11联合会的空列表初始化 - 是否保证可以初始化工会的全长
- 找出静态初始化是否结束
- 非本地非内联变量的初始化:是否严格在"main()"函数调用之前进行
- 空字符数组的初始化是否有效
- 变量零初始化-是否有未定义的行为
- 0-原子的初始化是否保证将值成员设置为0
- POD 类对象初始化是否需要构造函数
- 在C++中使用类似 c 的初始化或构造函数初始化是否被认为更好
- 类内成员初始化是否删除赋值运算符
- C++11;非静态数据成员初始化是否可以访问其他数据成员
- 列表初始化是否为隐式转换
- 复制列表初始化是否在概念上调用复制 ctor
- 如何测试/验证零初始化是否发生
- C++默认初始化是否保留先前的零初始化
- 使用新结构体进行聚合初始化是否有效
- 检测CRT初始化是否在注入过程中完成