我可以选择C ++ DLL来调用C#DLL吗?
我有一个C ++ DLL需要在C#类库中调用一个函数(传递一个值,返回一个值)。
我唯一的选择是给C#DLL一个COM接口,并使用IDispatch从C ++调用它?
这是最好的方法吗?
这里有几种选择
- 使用混合模式C ++ / CLI程序集作为C ++和C#DLL之间的桥梁
- 通过将几个关键C#类型公开为COM对象来使用COM桥。 然后可以通过普通的COM语义通过C ++代码访问它
此项目为类中的静态方法创建dll导出。 然后,您可以从非托管代码中调用C#静态方法。
一种可行的方法是通过COM调用它。 您可以使用Regasm工具来创建COM包装器。
这不是唯一的选择。
您还可以将C ++ DLL编译为托管DLL。
您可以将C#DLL作为服务托管并远程访问它。