【问题标题】:{System.__ComObject} properties in Visual Studio debugger not the same as Excel VBVisual Studio 调试器中的 {System.__ComObject} 属性与 Excel VB 不同
【发布时间】:2023-03-18 07:28:01
【问题描述】:

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

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

结果我有一个{System.__ComObject},点击“动态视图”(调试器/本地)我没有得到对象的任何属性。如果使用 Excel.Application 而不是 CATIA.Application,我可以在“动态视图”中看到对象的不同属性。

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

当我输入代码时:

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

在 Excel VBA 中,在调试器中会显示对象的所有属性。

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

我的问题是如何在 Visual Studio 2015 调试器窗口中看到 CATIA 对象的属性,因为我可以在 Excel VB 调试器中看到它们。

PD:我已经在 Visual Studio 2015 中导入了所有必要的引用

【问题讨论】:

    标签: vba visual-studio debugging com catia


    【解决方案1】:

    相关帖子:Use C# for Catia V5 Automation

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

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

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

    【讨论】:

      【解决方案2】:

      Dassault Systemes 为其 CATIA 支持的最新版本(顺便问一下,哪个版本?什么操作系统?)是 VS2013(希望我没有做错)。

      【讨论】:

      • 我在 Windows 中使用 CATIA V5R19 和 Visual Studio 2015 V 14.0.24720.00。你相信是版本问题吗?
      • 我已经下载了 VS2010 并且没有在“动态视图”中显示项目
      猜你喜欢
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多