我在Visual Studio 2010中处于调试模式时有以下消息Unhandled exception at 0x76c5f9e2 in test.exe: 0xC0000008: An invalid handle was specified.
当我在常规模式下运行时,我没有收到此错误。
调试器在此行的close.c中停止
CloseHandle( (HANDLE)_get_osfhandle(fh) ) )
有没有人知道如何避免这种错误?
答案 0 :(得分:3)
不要处理此异常,但要避免传递无效句柄的情况!
修改强>
在调试模式下,代码会提示您输入错误。所以你应该修复那个错误而不是处理后面的异常!
答案 1 :(得分:2)
我遇到了同样的问题。
我检查了堆栈损坏,句柄损坏等。最后我发现我不应该调用CloseHandle()
!
这是FindFirstFile()
返回的句柄,正确的处理函数是FindClose()
,而不是CloseHandle()
。