いくつかの C++/CLI DLL を呼び出す C# アプリケーションで構成されるプロジェクトがあります。ネイティブ コードに Visual Studio C ランタイム ライブラリの致命的なエラーがある場合、それをキャッチする方法はないようです。
簡単な例を挙げると、これをネイティブ コードに入れると、次のようになります。
wchar_t buf[1]; ::wcscpy_s(buf, 1, L"ab");
アプリがクラッシュします (リリース ビルドで)。例外はスローされず、__try...__except でキャッチできません。
この種のエラーをキャッチして、理想的にはコールスタックを使用して、適切なエラー ダイアログを表示できるようにしたいと考えています。ミニダンプを作成することにしましたが、C++/CLI DLL の 1 つで ::SetUnhandledExceptionFilter() を呼び出してミニダンプを作成しようとしましたが、どちらも機能していないようです。
.NET アプリケーションで C ランタイム ライブラリの致命的なエラーを適切に処理する方法はありますか?