非常に古くてバグが多く、現在は開発者アプリケーションでサポートされていない DLL が挿入されています。そのアプリケーションがクラッシュする場合があり、データを保存するために発生する可能性のある (DLL からの) 未処理の例外を文字通りすべてキャッチし、アプリのクラッシュを許可する何らかの方法が必要です。どうすればそれを達成できますか?
今のところ、その目的のための外部デバッガーがありますが、遅すぎて、そのままにしておくにはバグもあります。
非常に古くてバグが多く、現在は開発者アプリケーションでサポートされていない DLL が挿入されています。そのアプリケーションがクラッシュする場合があり、データを保存するために発生する可能性のある (DLL からの) 未処理の例外を文字通りすべてキャッチし、アプリのクラッシュを許可する何らかの方法が必要です。どうすればそれを達成できますか?
今のところ、その目的のための外部デバッガーがありますが、遅すぎて、そのままにしておくにはバグもあります。
DLL をホストする新しいプロセスを開始する必要があります。DLL がクラッシュすると、好むと好まざるとにかかわらず、プロセスが停止します。確かに、例外などをキャッチしようとすることはできますが、例外がスローされている場合は、メモリが破損していることを意味します。一貫性のない状態でプログラムを実行し続けるよりも、壊滅的にクラッシュする方が適切です。
Windows シェルは、実際にこれを行うプログラムです。代理プロセスでいくつかのプラグインを起動するため、プラグインがクラッシュしてもシェル全体がダウンすることはありません。プロセス間通信を使用して、自分と開始したサロゲートとの間で通信する必要があります。