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

时间:2009-06-09 18:11:24

标签: c# c++ dll interop idispatch

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

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

这是最好的方法吗?

4 个答案:

答案 0 :(得分:5)

这里有多种选择

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

答案 1 :(得分:1)

This project为类中的静态方法创建dll导出。然后,您可以从非托管代码中调用C#静态方法。

答案 2 :(得分:0)

一种可行的方法是通过COM调用它。您可以使用the Regasm tool创建COM包装器。

答案 3 :(得分:0)

这不是唯一的选项。

您还可以将C ++ DLL编译为托管DLL。

您可以将C#DLL作为服务托管并远程访问它。