【发布时间】:2011-12-07 16:40:01
【问题描述】:
我在 Visual Studio 2010 中处于调试模式时收到以下消息Unhandled exception at 0x76c5f9e2 in test.exe: 0xC0000008: An invalid handle was specified.当我在常规模式下运行时,我没有收到此错误。
调试器在此行的 close.c 中停止
CloseHandle( (HANDLE)_get_osfhandle(fh) ) )
有没有人建议如何避免这种错误?
【问题讨论】:
-
你为什么要这样做?当您调用
_close()时,CRT 会关闭句柄。如果你也关闭它,那么句柄就会双关,因此你有invalid handle错误。 -
但是为什么只有在调试模式下才会出现这个错误?
-
这是操作系统根据您是否在调试而改变其行为的情况之一。
-
@RaymondChen 等人:您是否碰巧知道是否有办法在调试时禁用此额外的错误检查?我正在使用一个无法轻松修改或重建的糟糕库,这给了我同样的错误(但当它不在调试器中运行时仍然“有效”),并且只要调试器挂断了这个特定的错误,它几乎不可能调试任何东西else。
-
你可以告诉你的调试器忽略异常。
标签: c++ visual-studio debugging exception