У меня есть проект, который состоит из приложения C #, которое вызывает пару библиотек C ++ / CLI. Если у меня в исходном коде есть фатальная ошибка Visual Studio C Runtime Library, похоже, нет способа ее отловить.
Чтобы привести простой пример, если я добавлю это в нативный код:
wchar_t buf[1];
::wcscpy_s(buf, 1, L"ab");
Приложение будет зависать (в сборках релиза). Это не исключение, и я не могу поймать его с помощью __try ...__ кроме.
Я бы хотел отлавливать ошибки такого рода, чтобы я мог отобразить хороший диалог об ошибках, в идеале с помощью стека вызовов. Я бы согласился на создание мини-дамп, но я попытался создать мини-дамп, вызвав :: SetUnhandledExceptionFilter () в одной из библиотек C ++ / CLI, но это тоже не работает.
Есть ли способ изящно обработать фатальную ошибку библиотеки времени выполнения C в приложении .NET?