COMオブジェクトがあります。場合によっては、このオブジェクトがクラッシュしてになり、多数の16進情報を含むWindowsイベントログにエラーイベントを登録することがあります。なぜこのクラッシュが起こるのかわからない。COMオブジェクトの例外をトレースする方法は?
どのようにこれらのCOMオブジェクト例外をトレースできますか?
COMオブジェクトがあります。場合によっては、このオブジェクトがクラッシュしてになり、多数の16進情報を含むWindowsイベントログにエラーイベントを登録することがあります。なぜこのクラッシュが起こるのかわからない。COMオブジェクトの例外をトレースする方法は?
どのようにこれらのCOMオブジェクト例外をトレースできますか?
最初のステップでは、失敗コードの16進値(E.G. E_FAIL 0x80004005)を検索します。私はエラーコードの意味を理解するためにGoogleにその価値を投稿することに本当にうれしかった。
次に、試行錯誤して、コードの場所を特定しようとしています。このコードは、失敗したコードの場所と失敗の根本原因です。
Visual Studioにパッケージされた「エラールックアップ」ツール(詳細here)を使用すると、エラーコードの意味を簡単に知ることができます。 16進数値を入力すると、エラーコードを示す文字列が表示されます。
もちろん、それが分かったら、なぜそれが起こっているのか把握しなければなりません。
エラー(hresult)コードを調べる良い方法は、HResult Plusまたはwelt.exe(Windowsエラー参照ツール)です。
何が起きているのかを見るために、COMクラスで内部的にログを使用します。また、COMクラスが実行可能ファイルによってロードされると、VSデバッガをアタッチして、ブレークポイント、時計、およびすべての楽しいものでCOMコードをデバッグすることができます。
COMオブジェクトは例外をスローしません。彼らはHRESULTを返します。そのほとんどは失敗を示します。したがって、例外スタックトレースと同等のものを探しているなら、あなたは不運です。あなたは手でコードを歩き、何が起こっているのか把握しなければならないでしょう。