打电话给谁是无效的关闭手(句柄)是安全的吗?
Is it safe to call CloseHandle (handle) who handle is NULL
删除空指针是安全的。
int* p = NULL;
delete p; // ok, secure
handles是什么?
HANDLE h = NULL;
CloseHandle(h); // allowed?
我正在阅读MSDN,但仍然不确定。它说明了error_invalid_handle,但它是6升,而不是null。
我来自一个班级的灾难,这给了我C6387警告错误
if (m_hThread)
WaitForSingleObject(m_hThread, INFINITE);
CloseHandle(m_hThread); // warninig C6387
m_hThread = NULL;
no。您不得在空手柄上调用CloseHandle
。查看该论点的文档。它说:
hobject [在]开放对象的有效句柄。
null不是开放对象的手柄。
您获得C6387的事实正好是因为您将"可能无效"的句柄传递给CloseHandle
。
您必须将代码写为:
if (m_hThread) {
WaitForSingleObject(m_hThread, INFINITE);
CloseHandle(m_hThread);
}
(在此之后,没有任何点设置m_hthread null-它将在很短的时间内停止)。
相关文章:
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 如何获取边缘窗口句柄 (HWND)?
- 枚举进程模块在有效句柄上返回无效句柄
- 在 c/c++ 中打开 PhysicalDrive 的句柄并写入 MBR 的 linux 等效是什么?
- 从运行服务的应用程序代码中提取窗口句柄
- 在读取文件后重置句柄
- 是否有像地图这样的C++结构,但我得到的不是值的键,而是值的句柄?
- Microsoft ODBC 无法创建有效的句柄
- 我是否可以使用 win32 句柄以编程方式记录发送到/接收到 USB/COM 的内容
- 获取特定进程的句柄数
- C++ 创建 NdisProt 驱动程序的句柄
- 是否需要关闭来自 WinHTTP 异步的句柄?
- 句柄OK全部崩溃
- 我需要通过窗口句柄(HWND)获取文件,我该怎么办?
- 什么是 C# 等同于C++句柄
- 未知C++错误:致命错误:glibc检测到无效的stdio句柄
- 获取现有进程句柄
- 假定 Windows 伪句柄的值是否安全/定义?
- 打电话给谁是无效的关闭手(句柄)是安全的吗?
- HANDLE(IntPtr)已过时,kernel32.dll,安全文件句柄到IntPtr