![]() |
1
12
|
![]() |
2
11
在浏览了类似的问题之后,我偶然发现了这个答案: OpenGL suppresses exceptions in MFC dialog-based application
我已经向微软提交了一份错误报告,你可以在这里看到他们的回复:
来自Microsoft:
|
![]() |
3
4
可能感兴趣的功能:
注意,setunhandledExceptionFilter()可以被加载到.exe中的其他dll重写。例如,Flash和Nvidia Direct3D可以做到这一点。我用API挂钩来解决这个问题。 |
![]() |
4
4
我也遇到过同样的问题,并发现这是由于这个Microsoft错误造成的: http://connect.microsoft.com/VisualStudio/feedback/details/550944/hardware-exceptions-on-x64-machines-are-silently-caught-in-wndproc-messages Microsoft提供了一个修复程序,但如果您有多个目标平台,则部署它有些困难: http://support.microsoft.com/kb/976038 下面是一篇关于描述行为的主题的文章: 问题基本上是32位程序中的硬件异常在64位OSS上的wndproc例程中被悄悄捕获,除非您发送命令告诉它不要这样做。微软对这个问题有一个修补程序 是 如果您运行的是Vista SP2,则是必需的,但对于Windows 7 SP1则不是必需的(不确定没有该SP的Win7)。 即使有了热修复程序,您也需要通过设置注册表项或对内核进行一些调用来启用正确的行为,以告诉它您的进程希望在wndproc期间遇到硬件异常时崩溃。 根据上面的paulbetts链接,这样做是为了向后兼容WindowsServer2003。 如果您的程序是64位程序,这个问题就会消失。 |
![]() |
5
3
事后给以后偶然发现的人答复。 这是由Windows中的已知问题引起的 http://support.microsoft.com/kb/976038 -请确保您是最新的,如果需要,请安装热修补程序,并将应用程序标记为与Windows7兼容。 http://msdn.microsoft.com/en-us/library/dd371711%28v=vs.85%29.aspx 我见过这个,例外代码是C015000F和C0150010。 |
![]() |
6
2
您可以强制Windows不忽略此代码段的异常(来自Microsoft的 Exceptions that are thrown from an application that runs in a 64-bit version of Windows are ignored )您将输入您的流程代码:
可能你还得加一个
unhandled exception filter
:筛选器的作用类似于“顶级异常处理程序”,类似于最顶端的
添加过滤器时:
您必须在流程的每个线程中都这样做:虽然前面的代码段是每个流程,但是过滤器是每个线程。 |
![]() |
7
-1
您的输出看起来像在使用Visual Studio…
|
![]() |
cyber101 · vc++未声明的标识符,尽管其已声明 7 年前 |
![]() |
areum · 如何在列表控件中创建右键单击菜单? 7 年前 |
![]() |
Rafal · 如何在MFC中的CWnd中显示CFormView? 7 年前 |
![]() |
Anton Savelyev · 在发布版本中删除类指针会导致内存问题 7 年前 |
![]() |
xtkwfn · 如何查找目录[已关闭]下的所有文件夹 7 年前 |
![]() |
Andrew Truckle · 在WPARAM中组合5个值 7 年前 |
![]() |
user3070144 · 通过全局接口表封送ActiveX 7 年前 |