我有一个 C++ DLL,需要调用 C# 类库中的函数(传递值、返回值)。

我唯一的选择是为 C# DLL 提供 COM 接口并使用 IDispatch 从 C++ 调用它吗?

这是最好的方法吗?

有帮助吗?

解决方案

这里有几个选项可供您选择

  1. 使用混合模式 C++/CLI 程序集作为 C++ 和 C# DLL 之间的桥梁
  2. 通过将几个关键 C# 类型公开为 COM 对象来使用 COM 桥。然后可以通过普通 COM 语义通过 C++ 代码访问它

其他提示

该项目创建DLL导出用于类的静态方法。然后,您可以从非托管代码调用C#静态方法。

一种方法,将工作会调用它虽然COM。您可以使用的Regasm工具创建COM包装。

这不是的只有的选项。

您也可以编译你的C ++ DLL作为一个托管的DLL。

您可能拥有你的C#DLL作为服务和远程进去了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top