某些对象在Visual Studio

时间:2018-06-10 22:05:59

标签: c# .net visual-studio com solidworks

我使用C#与SolidWorks连接。

我在Visual Studio 2017上发布最新版本(15.7.3)。该项目引用了SolidWorks .tlb文件,就像文档中所说的那样。在这些参考文献中,我设置了#34;嵌入互操作类型"到false,它允许我查看我在调试时处理的对象的类型,并查看任何公共属性等。

例如,如果我期待FeatureManager,则会显示为FeatureManagerClass

但是,尽管我可以在对象浏览器中看到System.__ComObjectSldWorks,但其中一半仍然会说ModelDoc2,如SldWorksClassModelDoc2Class

当我在项目上运行代码分析时,它会重建,并会显示约30条警告:

Processing COM reference 'SldWorks' from path "..." At least one of the arguments for "..." cannot be marshaled by the runtime marshaler.

Interface "..." is marked as [dual], but does not derive from IDispatch. It will be converted as an IUnknown-derived interface.

我不知道这些是不是分开的问题。只是想知道我是否可以正确显示所有类型。

1 个答案:

答案 0 :(得分:0)

我在使用VS 2015时遇到了这个问题。就我而言,通过启用选项“使用托管的兼容模式”,我能够在调试器中查看com对象的类型。

在Visual Studio中,如果您打开工具>>选项,然后调试>>常规,请确保已选中“使用受管兼容模式”选项。

这应该将com对象显示为调试器中的正确类型。