我知道这是不被赞同的,但现在我已经没有别的选择了。我正在开发一款C++/CLI应用程序,但有一个bug我无法追踪 - 主要是因为它绕过了我的当前崩溃处理程序:
AppDomain::CurrentDomain->UnhandledException += gcnew UnhandledExceptionEventHandler(&LogAndExit);
Application::ThreadException += gcnew ThreadExceptionEventHandler(&LogAndExit);
Application::SetUnhandledExceptionMode(UnhandledExceptionMode::CatchException);
try
{
Application::Run(gcnew frmMain());
}
catch (Exception^ ex)
{
LogAndExit(ex);
}
catch (...)
{
LogAndExit();
}
我猜这是标准的.NET崩溃处理。MSDN报告称,某些CRT异常将超过托管堆栈,并静默地终止应用程序。
我一直在阅读_set_invalid_parameter_handler,但即使我遇到LNK2001错误,它似乎也不能与/clr:pure一起使用。我是对的,还是我错过了一个lib文件?