首页 文章

如何正确初始化Win32 HANDLE?

提问于
浏览
2

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

例如,

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

我应该用什么来初始化 hFile

1 回答

  • 4

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

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

相关问题