调试时无效的句柄异常

时间:2011-10-14 11:31:58

标签: c++ visual-studio debugging exception

我在Visual Studio 2010中处于调试模式时有以下消息Unhandled exception at 0x76c5f9e2 in test.exe: 0xC0000008: An invalid handle was specified.当我在常规模式下运行时,我没有收到此错误。 调试器在此行的close.c中停止

CloseHandle( (HANDLE)_get_osfhandle(fh) ) )

有没有人知道如何避免这种错误?

2 个答案:

答案 0 :(得分:3)

不要处理此异常,但要避免传递无效句柄的情况!

修改
在调试模式下,代码会提示您输入错误。所以你应该修复那个错误而不是处理后面的异常!

答案 1 :(得分:2)

我遇到了同样的问题。

我检查了堆栈损坏,句柄损坏等。最后我发现我不应该调用CloseHandle()

这是FindFirstFile()返回的句柄,正确的处理函数是FindClose(),而不是CloseHandle()