将Win32 HANDLE
初始化为NULL
是否可以?或者有没有更好或推荐的方法来初始化HANDLE
?
例如,
void foo()
{
HANDLE hFile;
hFile = CreateFile(/* necessary arguments*/);
}
我应该用{<1}}初始化什么?
答案 0 :(得分:4)
在您的示例代码中,您不需要将hFile
初始化为任何内容,因为它是由CreateFile
函数初始化的。
Windows API与它认为的“null”句柄并不完全一致。某些API(如CreateFile
)在失败时返回INVALID_HANDLE_VALUE
,而其他API在失败时返回NULL
。因此,测试HANDLE
是否有效的方式取决于您从中获取的函数 - 检查函数的实际文档,并查看它所说的失败返回值。