Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
将Win32初始化为HANDLE可以NULL吗?或者有没有更好或推荐的初始化HANDLEs 的方法?
HANDLE
NULL
例如,
void foo() { HANDLE hFile; hFile = CreateFile(/* necessary arguments*/); }
我应该hFile用什么初始化?
hFile
在您的示例代码中,您不需要初始化hFile任何东西,因为它是由CreateFile函数初始化的。
CreateFile
Windows API 在它所认为的“空”句柄上并不完全一致。一些 API(如CreateFile)INVALID_HANDLE_VALUE在失败时返回,而其他 API 在失败时返回NULL。因此,您测试 aHANDLE是否有效的方式取决于您从中获取它的函数 - 检查该函数的实际文档,看看它所说的是失败时的返回值。
INVALID_HANDLE_VALUE