gpt4 book ai didi

exception - MFC应用程序异常处理异常行为

转载 作者:行者123 更新时间:2023-12-03 16:12:54 27 4
gpt4 key购买 nike

我有一个64位MFC应用程序,在其中使用崩溃报告。该方法基于本文:
http://www.codeproject.com/KB/debug/XCrashReportPt1.aspx?display=Print
所以我在AfxWinMain周围有一个__try-__except包装器框架。
去年,它似乎运行良好(我的意思是在不同的操作系统上以及32位和64位应用程序上)。
让我们以提供代码部分的异常为例:

    void CMyDig::Foo()
{
std::vector<int> v;
int i = v.at(42);
}

当我在对话框的消息处理程序(例如名为Foo的按钮的单击处理程序)中编写此代码时, AfxWinMain中不会捕获该异常。
如果我将其写入全局函数,它将异常传递给 AfxWinMain
现在我们有一个奇怪的问题:
在某些计算机上,对话框的情况还会生成崩溃报告(在afxwinmain中输入__except块),而其他人则没有。我设法在Win7 64位上创建了一个崩溃报告,但是在Win8,Win8.1和另一个Win7 64位上使用相同的程序却无法生成报告!
我使用vs2010进行编译,并在代码生成选项中将“启用c++异常”设置为EHsc(与去年一样,当它运行良好时)。

感谢您的任何想法!
阿提拉

最佳答案

仅定义SetUnhandledExceptionFilter来创建崩溃报告将不会更加容易。

在这种情况下,您不需要这样的__try / __except块

WndProcs具有自己的__try __except块,并且某些异常由它们自己处理。
但是无论如何。我从来没有遇到过异常过滤器的问题。
我的例程通常创建崩溃转储(minidump)并终止。我一直认为,这些裸露的信息不足以让我们的技术人员发现问题。

关于exception - MFC应用程序异常处理异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20971143/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com