不明な例外を捕らえたい

プロセス間で連携するアプリ達があった時に、ある連携するプロセスが落ちたら、別のプロセスに落ちたことを通知できたら良い感じだよなぁ..... と思ったわけです。

WinMainの初っ端から try-catch(...) で囲うのが手っ取り早いとか思ってみるも、それは余りにもナンセンス。*1 というわけで、いろいろ調べてみたら http://www.microsoft.com/japan/msdn/library/ja/jpdebug/html/_win32_SetUnhandledExceptionFilter.asp?frame=true なんつー関数があるらしい。 こいつに関数ポインタ投げてやれば、問題が発生したときに関数を呼んでくれる模様。


…つか調べてて思ったことは、C++の例外処理 と 窓拡張の例外機構 SEH について、詳しく調べる必要性があるなぁ…と。 どーいうケースで使い分ければいいのかってのが良く分からないし、__try __except っていまいち使い方がよくわからんし、http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_set_terminate.asp?frame=true, http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_CRT_signal.asp?frame=true, と http://www.microsoft.com/japan/msdn/library/ja/jpdebug/html/_win32_SetUnhandledExceptionFilter.asp?frame=true (他にもある?)が、どう絡み合ってるのかもわからんし…。*2

む〜ん…

*1:つか、そもそも catch(...) ですべて捕らえることが出来ない…? いや、Debug と Release で挙動が違うというか…??ん〜?

*2:CRTと WinAPI の絡み方が良く分かってないんでしょうけど…