2

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

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

这是最好的方法吗?

4

4 回答 4

6

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

  1. 使用混合模式 C++/CLI 程序集作为 C++ 和 C# DLL 之间的桥梁
  2. 通过将几个关键的 C# 类型公开为 COM 对象来使用 COM 桥。然后可以通过正常的 COM 语义通过 C++ 代码访问它
于 2009-06-09T18:33:40.247 回答
1

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

于 2011-09-22T19:57:42.983 回答
0

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

于 2009-06-09T18:13:30.780 回答
0

这不是唯一的选择。

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

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

于 2009-06-09T18:13:58.830 回答