Я знаю, что это не одобряют, но я из вариантов здесь. Я разрабатываю приложение C ++ / CLI, в котором есть ошибка, которую я не могу отследить - в основном потому, что она обходит мой текущий обработчик сбоев:
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. Я прав,или я просто PEBKAC добавляю его и пропускаю файл библиотеки?