调试时无效句柄异常

问题描述 投票:0回答:3

当我在 Visual Studio 2010 中处于调试模式时,我收到以下消息

Unhandled exception at 0x76c5f9e2 in test.exe: 0xC0000008: An invalid handle was specified.
当我在常规模式下运行此命令时,我不会收到此错误。 调试器在 close.c 的这一行停止

CloseHandle( (HANDLE)_get_osfhandle(fh) ) )

有人对如何避免此类错误有任何建议吗?

c++ visual-studio debugging exception
3个回答
5
投票

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

编辑:
在调试模式下,代码会提示您出现问题。因此,您应该修复该错误,而不是事后处理异常!


4
投票

我也遇到了同样的问题。

我检查了堆栈损坏、句柄损坏等。最终我发现我不应该调用

CloseHandle()

这是

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


0
投票

面临类似的问题,对我有用的是将调试架构从 x86 更改为 x64。

© www.soinside.com 2019 - 2024. All rights reserved.