1

一部のコンピューターで Excel をクラッシュさせる Excel XLL アドインがあります。トラブルシューティングを行うために、次の呼び出しを追加しましたDllMain

SetUnhandledExceptionFilter(MyExceptionFilter);

およびフィルター自体:

LONG WINAPI MyExceptionFilter(struct _EXCEPTION_POINTERS *lpTopLevelExceptionFilter)

ただし、フィルタがクラッシュ時に呼び出されることはありません。

4

1 に答える 1

0

これは古い質問ですが、これが他の誰かを助けることができる場合に備えて: SetUnhandledExceptionFilter()XLL 内での使用は設計上サポートされていません。オフィス-addin.2164345/

観察された動作は仕様によるものです。

サードパーティのアドイン/DLL は、Office 2007 アプリの未処理の例外フィルターを設定できません (少なくともサポートされている方法ではありません)。MSO.DLL は、フィルター自体を明示的に設定し、API をオーバーライドして、MSO がフィルターを設定した後にサード パーティがフィルターを変更できないようにします。これは、すべての Office アプリ (Outlook だけでなく) に共通です。

したがって、Excel からクラッシュ ダンプを取得する唯一の公式にサポートされている方法は、WERを使用することです。

ただし、実際には、MSVC 固有の_set_se_translator()関数を使用しても機能します。ただし、 process-global とは異なり、すべてのアプリケーション スレッドから呼び出す必要がありますSetUnhandledExceptionFilter()

于 2016-03-17T15:58:55.957 に答える