一尘不染

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

c#

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


阅读 215

收藏
2020-05-19

共1个答案

一尘不染

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

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

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

我不特别知道Sharpbox系统,但它看起来像是纯.NET且不公开COM接口,因此2.b可能是实现此目标的最佳方法(并非那么简单…)。也许它具有您可以使用的REST
/ Web简单API。

PS:您还可以将导出添加到.NET DLL。此处描述如下:是否可以像VS C
++一样从C#DLL导出函数?
但是有点怪。

2020-05-19