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