4
サードパーティのC#ライブラリにCOMインターフェイスを提供する目的で、C#で作成されたDLLがあります。私はそのC#ライブラリと通信できるようにそのCOMインターフェイスを使用するC++プログラムを持っています。場合によっては、C#側で例外がスローされ、C++側に戻ってくるのは、例外が発生したことを意味するCOM呼び出しからのHRESULTです。私がC++アプリケーションのログに有益なメッセージを出力できるように、例外情報全体を取得する方法はありますか?そうでない場合は、C#側ですべての例外を傍受して、HRESULTをC++に返すメカニズムをトリガーする前にC#側でログできるようにするために何かできますか?C#でロードされたC#DLLで例外を処理する方法
あなたが提供したリンクで私の読書は私に希望を与えます。私のために必要なすべてのインターフェイスのクエリを実行するATLクラスを知っていますか、それとも自分で行う必要がありますか? – rmeador
ATLはIErrorInfoを実装しています。非常にシンプルなインターフェースです。 ISupportErrorInfo :: InterfaceSupportsErrorInfo()を最初に実行し、次にIErrorInfo :: GetDescription()を呼び出します。 QIを使用してインターフェイスポインタを取得します。 –