0

いくつかの 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 ランタイム ライブラリの致命的なエラーを適切に処理する方法はありますか?

4

1 に答える 1