Visual Studio 调试器中的 {System.__ComObject} 属性与 Excel VB 不同

{System.__ComObject} properties in Visual Studio debugger not the same as Excel VB

我已经尝试了一个星期的所有方法,但找不到解决方案。问题是我一直在使用 Excel VB 在 CATIA 中实现流程自动化,现在我想使用 Visual Studio 2015。我唯一的问题是 Visual Studio 中的调试器.当我使用:

Dim CATIA As INFITF.Application = GetObject(, "CATIA.Application");

结果是 {System.__ComObject},单击 "Dynamic View" (Debugger/Locals) 我没有得到该对象的任何属性。如果使用 CATIA.Application 而不是 Excel.Application,我可以在 "Dynamic View" 中看到对象的不同属性。

http://stpserver.webcindario.com/vstudiodebugger.png

还有当我输入代码时:

Set CATIA = GetObject(,"CATIA.Application")

在ExcelVBA中,在调试器中会出现对象的所有属性。

http://stpserver.webcindario.com/excevbadebugger.png

我的问题是如何在 Visual Studio 2015 调试器 window 中看到 CATIA 对象的属性,正如我在 Excel VB 调试器中看到的那样。

PD:我已经在 Visual Studio 2015

中导入了所有必要的参考资料

Dassault Systemes 为其 CATIA 支持的最新版本(顺便说一句,哪个版本?OS 是什么?)是 VS2013(希望我没有弄错)。

相关post:

遗憾的是,我不知道您需要的确切 VB.net 代码,但这应该为您指明了正确的方向。因为你想要 COM 对象,过程是一样的,只是语法不同。

在您的 Visual Studio 项目中右键单击并添加引用。在 COM 选项卡下,类型库部分查找:CATIA V5 InfInterfaces 对象库。这是 INFITF.Application 所需要的。如果您想在 Catia 中使用其他对象,您将需要 MecModInterfaces、PartInterfaces、ProductInterfaces,对于 HybridShape 类型,您将需要 CATGSMIDLItf Object Library(在 R23 之前它有不同的名称,但我不记得它是什么)。 之后需要使用Marshal附加到Catia进程。

Visual Studio 的版本无关紧要,因为您使用的是 COM。如果您使用的 CAA-RADE 具有特定于版本的工具,那确实很重要。 我已成功使用 Visual Studio 2010(使用 Catia R19-20)、VS2012(使用 Catia R22 和 R23)、VS2013 和 VS2015(使用 Catia R23)。 我认为您的问题可能出在缺少参考文献上。