我可以选择C ++ DLL来调用C#DLL吗?

我有一个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作为服务托管并远程访问它。