MFCのプログラムでクラッシュしたときにポップアップされない場合の対処方法
MFCプログラムがクラッシュしたがエラーメッセージボックスが表示されない場合、問題解決のために次の方法を試すことができます。
- 例外が捕捉され処理されているかどうかプログラムを確認します。そうでない場合は、プログラムがクラッシュしたときに処理しエラーメッセージボックスを表示する、グローバル例外処理関数を 追加できます。次のコードサンプルを参照してください。
void MyUnhandledExceptionFilter(EXCEPTION_POINTERS *ExceptionInfo)
{
// 处理异常并弹出错误消息框
// ...
}
int main()
{
// 设置全局异常处理函数
SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
// 启动MFC程序
// ...
}
- バックグラウンドで実行されているか確認し、ダイアログ表示に失敗している可能性があります。フロントにプログラムを移動させてから、強制終了を再度試してエラーメッセージボックスが表示されるかどうかを確認してください。
- 起動時にプログラムのエラー報告が禁止されていないか確認しましょう。禁止されている場合はエラー報告を有効にしてプログラムを再び実行することで、エラーメッセージボックスが表示されます。
- デバッグモードで実行されておらず、ブレークポイントや例外捕捉が設定されていないことを確認します。デバッグモードで実行している場合、プログラムがクラッシュすると、通常はアプリのインターフェイスに表示されるのではなく、デバッガーにエラーメッセージボックスが表示されます。
上記の方法で問題が解決しない場合は、Visual Studio のデバッガを使用してプログラムのクラッシュの原因を分析したり、デバッグ出力ウィンドウでエラーメッセージを確認したりして、デバッグツールを使用して試行してみることをお勧めします。