如何正确初始化Win32 HANDLE?

时间:2013-05-30 09:21:18

标签: winapi handle

将Win32 HANDLE初始化为NULL是否可以?或者有没有更好或推荐的方法来初始化HANDLE

例如,

void foo()
{
   HANDLE hFile;
   hFile = CreateFile(/* necessary arguments*/);
}

我应该用{<1}}初始化什么?

1 个答案:

答案 0 :(得分:4)

在您的示例代码中,您不需要将hFile初始化为任何内容,因为它是由CreateFile函数初始化的。

Windows API与它认为的“null”句柄并不完全一致。某些API(如CreateFile)在失败时返回INVALID_HANDLE_VALUE,而其他API在失败时返回NULL。因此,测试HANDLE是否有效的方式取决于您从中获取的函数 - 检查函数的实际文档,并查看它所说的失败返回值。