2

CATIA COM モジュールを使用する C# を使用してアプリケーションを構築しています。C# プロジェクト内に COM をインポートすると、Visual C# Express が Interop を自動的に生成すると思います。

これはすべて正しく機能します。ただし、実行時にアプリケーションをデバッグしてウォッチを使用しようとすると、すべてのオブジェクトが であり、System.__ComObjectそれらの「実際の」値を取得できません。

デバッガーに COM オブジェクトの型を伝える方法はありますか?

目標は、私がよく知らないこの新しい API に慣れることです。インターフェイス階層が非常に深いため、すべての正しい型を推測するのがかなり難しい場合があります

4

2 に答える 2

3

問題があるコード例を投稿しません。ほとんどの場合、デバッガーで表示するオブジェクトを作成またはキャストする方法に依存します (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.ne​​t/category/com-interop/

http://resources.esri.com/help/9.3/arcgisengine/dotnet/e6532ba4-d769-48a6-8bc4-8592352b9bf4.htm

VS.Net のデバッガーで COM / Interop クラスのインスタンスを正しく検査していますか?

http://dotnetdebug.ne​​t/2005/09/10/runtime-callable-wrapper-internals-and-common-pitfalls/

于 2010-06-11T23:48:08.893 に答える
0

ビジュアルスタジオで、ツール>>オプションを開いてからデバッグ>>一般を開くと、「マネージド互換モードを使用する」オプションがオンになっていることを確認してください。これにより、デバッガーで com オブジェクトが適切な型として表示されます。

于 2019-02-01T17:20:03.030 に答える