0

私は VC++ を初めて使用し、.net プラットフォームで C# を使用した経験があります。現在、私は .net プラットフォームで VC++ と C# を組み合わせたプロジェクトに参加しています。

以前は、C# を使用して開発されたすべての Windows フォーム アプリケーションに対して集中例外処理を追加していました。ここで集中例外とは、次のようなものを意味し ます http://www.codeproject.com/KB/cs/GlobalExceptionHandling.aspx

今問題は私の新しいプロジェクトにあり、VC ++にあるレガシーアプリケーションがあります。Visual Studio 2008 でコンパイルできるようにプロジェクトに変更が加えられましたが、コードはまだアンマネージ VC++ です。現在のコードには多くの { try catch } があり、アプリケーションが結果を知ることなくローカルで例外が処理されています。

C# フォーム アプリケーション (CurrentDomain_UnhandledException などを使用) の場合と同様に、このレガシー VC++ フォーム アプリケーションに集中例外処理を追加できるかどうかを知りたかったのです。はいの場合、この例外処理をどこに追加し、どのように追加しますか。イラストの見本がとても参考になります。

4

1 に答える 1

0

をご利用いただけますset_unexpected (<exception>)

SetUnhandledExceptionFilterまたは、関数を使用できます。これにより、アプリケーションは、プロセスの各スレッドの最上位の例外ハンドラーを置き換えることができます。

この関数を呼び出した後、デバッグされていないプロセスで例外が発生し、例外が未処理の例外フィルターに到達した場合、そのフィルターは lpTopLevelExceptionFilter パラメーターで指定された例外フィルター関数を呼び出します。

于 2010-09-27T07:04:41.393 に答える