C ++ / CLI: Перехват всех исключений (.NET / Win32 / CRT)

Я знаю, что это не одобряют, но я из вариантов здесь. Я разрабатываю приложение 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 добавляю его и пропускаю файл библиотеки?

7
задан Kiril 17 August 2011 в 18:45
поделиться