c# - 如何使用COM接口(interface)调试应用程序?

标签 c# com debugging watch catia

我正在使用 C# 构建一个应用程序,该应用程序将使用 CATIA COM 模块。当我在 C# 项目中导入 COM 时,我认为 Visual C# Express 会自动为我生成 Interop。

所有这些都可以正常工作。但是,当我尝试调试应用程序并在运行时使用监视时,每个对象都是 System.__ComObject,并且我无法获取它们的“真实”值。

有没有办法告诉调试器我的 COM 对象的类型?

目标是更熟悉这个我不太了解的新 API。有时很难猜测所有内容的正确类型,因为接口(interface)层次结构非常深。

最佳答案

您不会发布出现问题的代码示例。主要取决于您希望在调试器中看到的如何创建或转换对象(如果可以的话,使用new创建对象的实例总是更好类(class))。您应该搜索有关运行时可调用包装器 (RCW) 的信息。这是一个无法理解你想要什么的“家伙”。

顺便说一下,如果您可以使用 Visual Studio 2010,您的生活会更轻松(请参阅 Link)。

如果您使用的话,两个链接可以帮助您解决问题

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/

关于c# - 如何使用COM接口(interface)调试应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026540/

相关文章:

c# - 有没有办法链接双重 try/finally 异常而不是丢失或记录?

c++ - 如何从 Visual Basic 调用 C++ 构造函数

c++ MFC compile error "C2470: ' CMySink' : looks like a function definition, but there is no parameter list;跳过明显的 body ”

android - 启动时自动转发端口?

c# - 在我的应用程序中嵌入控制台应用程序

c# - 抽象类类型C#的调用子实现

com - WiX COM 注册失败,但导出注册表项、删除并重新导入有效

macos - 为什么我的断点是空心的?

javascript - jQuery SlideToggle 不适用于语义上不相邻的元素

c# - 使用 NSubstitute 模拟 Web 服务时出错