在 Windows 中创建命名对象时,可以通过调用GetLastError()
并检查ERROR_ALREADY_EXISTS
.
有没有办法提出双重问题:我CloseHandle()
是最后一个关闭(句柄)命名资源的人吗?
不,内核句柄不是引用计数的。当您调用CloseHandle
时,将关闭句柄。
直接说不行。
但是,您可以通过在 之后调用GetHandleInformation来间接获取它。如果句柄无效,则函数将失败并将错误号设置为。CloseHandle
ERROR_INVALID_HANDLE
不,也不是间接地,再次考虑它。这只会告诉您您的句柄无效......自从您关闭它以来您就已经知道了。