我使用C#与SolidWorks连接。
我在Visual Studio 2017上发布最新版本(15.7.3)。该项目引用了SolidWorks .tlb
文件,就像文档中所说的那样。在这些参考文献中,我设置了#34;嵌入互操作类型"到false
,它允许我查看我在调试时处理的对象的类型,并查看任何公共属性等。
例如,如果我期待FeatureManager
,则会显示为FeatureManagerClass
。
但是,尽管我可以在对象浏览器中看到System.__ComObject
和SldWorks
,但其中一半仍然会说ModelDoc2
,如SldWorksClass
或ModelDoc2Class
。
当我在项目上运行代码分析时,它会重建,并会显示约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.
我不知道这些是不是分开的问题。只是想知道我是否可以正确显示所有类型。
答案 0 :(得分:0)
我在使用VS 2015时遇到了这个问题。就我而言,通过启用选项“使用托管的兼容模式”,我能够在调试器中查看com对象的类型。
在Visual Studio中,如果您打开工具>>选项,然后调试>>常规,请确保已选中“使用受管兼容模式”选项。
这应该将com对象显示为调试器中的正确类型。