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

标签 c# .net visual-studio-2012 com

我正在处理一个项目,我需要在 C#.net 项目中调用一个非托管 COM 对象。在这个link ,我发现为了在 .net 中调用 COM 对象,需要在该对象上有一个 RC 包装器。所以,我只是想知道这是否是继续进行的唯一方法?或者我们是否有任何其他方式在 .NET 中调用 COM 对象?

最佳答案

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

参见 How to: Add or Remove References By Using the Add Reference Dialog Box .


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

本文介绍了基础知识:Quick C++/CLI - Learn C++/CLI in less than 10 minutes .您需要调整它以添加 COM 类的常用生命周期管理代码。

关于c# - RCW(Runtime Callable Wrapper) 是在 .net 中调用非托管 com 对象的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24820679/

相关文章:

c# - 在 Rider 和 Visual Studio 中使用 C# 和 ASP.Net 的 Git 问题

.net - 针对多个框架的 dotnet 包

c++ - 非 MFC ATL 项目 (dll) 产生 MFC 相关错误

c# - 按顺序循环父控件

c# - 当用户单击 CommandBar 上的 AppBarButton 时,最后一个具有焦点的文本框中的数据不会更新(UWP)

c# - .NET 控制台窗口

.net - MDX 查询生成器实现

.net - 如何取消长时间运行的数据库操作?

c# - Windows Phone 8 SDK 不刷新页面的 XAML 部分

debugging - 如何使用 MS 测试管理器或 TFService 2013 将部分代码链接到测试用例?