RCW(Runtime Callable Wrapper)是在.net中调用非托管com对象的唯一方法吗?

The*_*che 1 .net c# com visual-studio-2012

我正在开发一个项目,我需要在C#.net项目中调用非托管COM对象.在这个链接中,我发现为了在.net中调用COM对象,需要在该对象上有一个RC包装器.所以,我只是想知道这是否是唯一的出路?或者我们还有其他方法在.NET中调用COM对象吗?

met*_*bed 5

VS允许您简单地添加对COM DLL的引用.它只是"添加引用"对话框中的一个选项卡.对于大多数情况,该过程非常无缝.它会自动为您生成完整的RCW.您无需编写任何手动代码.

请参见如何:使用"添加引用"对话框添加或删除引用.


如果需要更多控制,另一种方法是创建管理和调用COM类的C++/CLI或托管C++类.可以通过C#代码依次调用此Managed C++类.您实际上是围绕COM代码创建"手动"包装器.C++/CLI是一种混合语言,它结合了托管.NET和非托管C++代码的元素.

本文介绍了基础知识:快速C++/CLI - 在不到10分钟的时间内学习C++/CLI.您需要对其进行调整以添加COM类的常用生命周期管理代码.