【发布时间】:2018-11-20 03:46:35
【问题描述】:
我正在使用 C# 与 SolidWorks 交互。
我使用的是 Visual Studio 2017,最新版本 (15.7.3)。该项目引用了 SolidWorks .tlb 文件,就像文档中所说的那样。在这些引用中,我将“嵌入互操作类型”设置为 false,这使我可以在调试时查看我正在处理的对象的类型,并查看任何公共属性等。
例如,如果我期待 FeatureManager,它将显示为 FeatureManagerClass。
但是,尽管我可以在对象浏览器中看到SldWorksClass 和ModelDoc2Class,但仍有一半人说System.__ComObject,比如SldWorks 或ModelDoc2。
当我对项目运行代码分析时,它会重新构建,并且会显示大约 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.
我不知道这些是否是单独的问题。只是想知道我是否可以让所有类型都正确显示。
【问题讨论】:
-
不完全符合您的要求,但在监视窗口中,您可以手动转换变量以查看所有属性。我总是认为这是一个给定的障碍,而不是你可以解决的问题。如果你能找到方法,请分享。
标签: c# .net visual-studio com solidworks