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()的返回值對它進行初始化。 –