「アプリケーション定義の」UnhandledExceptionFilterについては正確には何ですか?

StackOverflow https://stackoverflow.com/questions/3611439

質問

次のように

UnhandledExceptionFilter を記述する「プロセスがデバッグされている場合、デバッガに未処理の例外を渡すアプリケーション定義関数。」

しかし、この機能は明らかに、同じページによるとKERNEL32.DLLに、OSによって供給されます。

なぜ、彼らはそれを呼び出すか、のアプリケーション定義関数

役に立ちましたか?

解決

はい、非常に厄介な言語。これは、関数ののプロトタイプの定義です。あなたはどちら__exceptキーワードまたは)SetUnhandledExceptionFilter(への引数として使用することができます。どちらかあなたの「アプリケーション定義された関数」になるだろう。

そこのデフォルトの取り扱いあなたはどちらも行わない場合、デバッガは自動的に処理されない例外で停止します。これは、私は、彼らが「それがデバッガに例外を渡す」と意味したものであると仮定します。 SEHのためのSDKドキュメントは、すべての周り失敗グレードに値するます。

他のヒント

(カーネルがあなた自身でそれを無効にするまで使用されている独自のデフォルトの実装を実装していますが)

UnhandledExceptionFilter()自体は、カーネルが提供する独自の機能ではありません。あなたが引用UnhandledExceptionFilter()のドキュメントは、あなたがあなた自身の機能を実装し、カーネル内でそれをアクティブにするSetUnhandledExceptionFilter()関数に渡すことを選択した場合に従わなければならないことを関数のプロトタイプを記述します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top