COM インターフェイスを使用してアプリケーションをデバッグするにはどうすればよいですか?
質問
C# を使用して CATIA COM モジュールを使用するアプリケーションを構築しています。C# プロジェクト内に COM をインポートすると、Visual C# Express が相互運用機能を自動的に生成すると思います。
これらはすべて正しく動作します。ただし、アプリケーションをデバッグして実行時に監視を使用しようとすると、すべてのオブジェクトが System.__ComObject
そしてその「本当の」価値を得ることができません。
COM オブジェクトの種類をデバッガーに伝える方法はありますか?
目標は、よくわからないこの新しい API にもっと慣れることです。インターフェースの階層が非常に深いため、すべての正しい型を推測するのがかなり難しい場合があります。
解決
問題があるコード例は投稿しません。ほとんどの場合は依存します オブジェクトを作成またはキャストする方法 デバッガで確認したいもの(オブジェクトのインスタンスを作成します) new
原因がある可能性がある場合は、常にその方が良いです)。Runtime Callable Wrapper (RCW) に関する情報を検索する必要があります。これは、あなたが何を望んでいるのか理解できない「男」です。
ちなみに、Visual Studio 2010 を使用できる場合は、ライブがより簡単になります (「 http://blogs.msdn.com/b/habibh/archive/2009/09/22/debugging-a-com-object-runtime-callable-wrapper-with-visual-studio-2010.aspx).
次の場合、2 つのリンクが問題の解決に役立ちます。
http://dotnetdebug.net/category/com-interop/
http://resources.esri.com/help/9.3/arcgisengine/dotnet/e6532ba4-d769-48a6-8bc4-8592352b9bf4.htm
VS.Net のデバッガーで COM / Interop クラスのインスタンスを適切に検査しますか?
http://dotnetdebug.net/2005/09/10/runtime-callable-wrapper-internals-and-common-pitfalls/
他のヒント
開いツールであれば>>オプションとデバッグ>>一般には、必ずオプションは、それが上で確認「の使用は、互換モードを管理する」ことを確認します。これは、COMは、デバッガ内の適切な型としてオブジェクトを表示する必要があります。