0

我是 VC++ 新手,在 .net 平台上使用 C# 方面有很好的经验。目前我在一个项目中,它是 .net 平台上的 VC++ 和 C# 的组合。

我曾经为使用 C# 开发的所有 Windows 窗体应用程序添加集中的异常处理。我在这里所说的集中异常的意思是这样的 http://www.codeproject.com/KB/cs/GlobalExceptionHandling.aspx

现在问题出在我的新项目中,有一个使用 VC++ 的遗留应用程序。在项目中进行了更改,以便它可以在 Visual Studio 2008 中编译,但代码仍然是非托管 VC++。我在当前代码中看到很多 { try catch } 并且在本地处理异常,而应用程序却不知道后果。

我想知道我是否可以像为 C# 表单应用程序(使用 CurrentDomain_UnhandledException 等)所做的那样,向这个遗留的 VC++ 表单应用程序添加集中式异常处理。如果是,我在哪里添加此异常处理以及如何添加它。示例插图将有很大帮助。

4

1 回答 1

0

您可以利用set_unexpected (<exception>).

或者,您可以使用SetUnhandledExceptionFilter函数;它使应用程序能够取代进程的每个线程的顶级异常处理程序。

调用该函数后,如果一个未被调试的进程发生异常,并且该异常进入未处理异常过滤器,该过滤器将调用lpTopLevelExceptionFilter参数指定的异常过滤函数。

于 2010-09-27T07:04:41.393 回答