在C++代码中使用 C# dll

本文关键字:dll C++ 代码 | 更新日期: 2023-09-27 18:33:49

我需要集成这个 C# dll在我的C++代码中。我想从 dll 调用一些用 C# 编写的函数,其余代码用 C++ 编写。最简单快捷的方法是什么?该程序将仅在Windows上执行。

在C++代码中使用 C# dll

基本上有两种情况可以从非托管代码调用 .NET DLL:

  1. .NET DLL 公开一个 COM 接口。在这种情况下,可以从C++代码中使用 COM。
  2. .NET DLL 不公开 COM 接口。在这种情况下,您有两种可能性(为了简单起见):

    2.a. 承载 CLR,如下所述:将公共语言运行库加载到进程中
    2.b. 编写一段托管C++代码(另一个 DLL - 用 C++/CLI 编写)来包装 .NET DLL 并向非托管客户端公开"旧方式"DLL 导出。

我不是特别了解锐盒系统,但它看起来像是纯 .NET 并且不公开 COM 接口,所以 2.b 可能是最好的方法(不是那么容易......也许它有一个更容易使用的 REST/Web API。

PS:您还可以将导出添加到.NET DLL。这里对此进行了描述:是否可以像在 VS C++ 中那样从 C# DLL 导出函数?但这有点笨拙。