2

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

所有这些都正常工作。但是,当我尝试在运行时调试应用程序并使用手表时,每个对象都是 a 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)。

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

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

在 Visual Studio 中,如果您打开工具 >> 选项然后调试 >> 常规,请确保选中“使用托管兼容模式”选项。这应该在调试器中将 com 对象显示为它们的正确类型。

于 2019-02-01T17:20:03.030 回答