0

ESRIのAPIであるArcObjectsを使用して、ArcGISアプリケーション用にプログラミングしています。

どのCOMオブジェクトが生きているかスタック上にあるかを検査できるツールがあるかどうか知りたいです。

私はすでにそれらを解放することを知っていますが、残り物があるかどうかを確認するために各メソッドを調べます。

4

3 に答える 3

1

Googleで「COMInspector」とランダムに入力すると、このリンクが作成されました。見た目は良さそうですが、個人的な経験はありません。このクエリを自分で実行して、他のクエリを見つけます。

于 2010-07-30T15:14:06.560 に答える
1

私の知る限り、そのようなツールはありません。最下位レベルでは、COMオブジェクトはメモリの特定のバイナリレイアウトにすぎません。そのメモリが割り当てられる方法と場所は、COMオブジェクトを実装するコード次第です。どのツールでも、共同作成したCOMオブジェクトのメモリのみを検査できます。実際には、同じアパート内のCOMオブジェクトのみを検査でき、それ以外の場合はプロキシのみを検査できます。

また、COMオブジェクトがスタックに[*]割り当てられることはありません。それらは常にヒープに割り当てられます。

[*]ただし、ATLのCComObjectStack <>は、単体テストの目的には非常に便利です。

于 2010-07-30T14:35:17.287 に答える
1

.NETを使用している場合は、 AppDomain.CurrentDomain.GetAssembliesを使用してロードされたすべてのアセンブリをループする必要があります。

ロードされている拡張機能を確認するには、IExtensionManagerを使用して拡張機能をループします。

どのコマンドバーがロードされているかを確認するのは少し複雑です。

于 2010-07-30T21:05:36.073 に答える