2010-06-11 10 views
1

Je construis une application utilisant C# qui utilisera des modules CATIA COM. Lorsque j'importe le COM dans mon projet C#, je pense que Visual C# express génère l'Interop automagiquement pour moi.Comment déboguer des applications en utilisant des interfaces COM?

Tout cela fonctionne correctement. Toutefois, lorsque j'essaie de déboguer l'application et d'utiliser des montres pendant l'exécution, chaque objet est un System.__ComObject et je ne peux pas obtenir leur valeur "réelle".

Existe-t-il un moyen de dire au débogueur les types de mes objets COM?

Le but est de me familiariser avec cette nouvelle API que je ne connais pas très bien. Il est parfois difficile de deviner les types corrects pour tout puisque la hiérarchie de l'interface est assez profonde.

Répondre

2

Vous ne postez pas d'exemple de code où vous avez un problème. Généralement, cela dépend de comment vous créez ou lancez un objet que vous voulez voir dans le débogueur (créer une instance de l'objet avec new est toujours mieux, si c'est possible). Vous devez rechercher des informations sur Runtime Callable Wrapper (RCW). C'est "le gars" qui ne peut pas comprendre ce que vous voulez. Par ailleurs si vous pouvez utiliser Visual Studio 2010, votre live peut être plus facile (voir http://blogs.msdn.com/b/habibh/archive/2009/09/22/debugging-a-com-object-runtime-callable-wrapper-with-visual-studio-2010.aspx).

Deux liens peuvent vous aider à résoudre le problème si vous utilisez

http://dotnetdebug.net/category/com-interop/

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

Inspecting an instance of a COM/Interop class properly in VS.Net's debugger?

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

+0

Merci beaucoup, je vais vérifier cela lundi pendant que je suis payé pour le faire =) – Eric

+0

Et c'est mieux toi donner un aperçu simple une fois que vous l'avez fait, pour la commodité de l'autre public, Eric :) –

Questions connexes