2013-05-30 105 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是否有效的方式取決於您從中獲得的功能 - 檢查功能的實際文檔,並查看它所說的是失敗時的返回值。