在一个程序中,我偶然在互斥锁手柄上调用closeHandle()
两次(关闭已经关闭的句柄)。
在调试器中运行代码时,我按预期收到了异常错误An invalid HANDLE was specified.
。
但是,将程序“正常”作为独立程序(在调试程序之外)运行,不会出现异常或任何其他错误。程序似乎正常运行。
这只是Visual Studio .NET 2003中的一个设置还是还有更多设置?
答案 0 :(得分:5)
如果应用程序在调试器下运行,则该函数在收到无效的句柄值或伪句柄值时将抛出异常。如果关闭句柄两次,或者在FindFirstFile函数返回的句柄上调用CloseHandle而不是调用FindClose函数,则会发生这种情况。