2013-05-30 76 views
1

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

例如,

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

我拿什么来初始化hFile用?

+0

您应该使用CreateFile()的返回值对它进行初始化。 –

回答

4

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

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