在Windows中创建命名对象时,可以通过调用GetLastError()
并检查ERROR_ALREADY_EXISTS
来确定对象是否已存在。
有没有办法提出双重问题:我的CloseHandle()
最后关闭(句柄)命名资源?
答案 0 :(得分:2)
不,kernel handles aren't reference-counted。当您致电CloseHandle
时,会关闭句柄。
答案 1 :(得分:1)
直接,没有。
但是,您可以在 CloseHandle
之后调用GetHandleInformation来间接 。如果句柄无效,则该函数将失败并将错误编号设置为ERROR_INVALID_HANDLE
。
不,也不是间接,再考虑一下。这只会告诉您,您的句柄无效......自您关闭它以来就已经知道了。