2

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

例如,

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

我应该hFile用什么初始化?

4

1 回答 1

5

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

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

于 2013-05-30T09:26:45.553 回答