我需要整合这个C# dll 在我的C ++代码中。我想用dll调用一些用C#编写的函数,用C ++编写其余的代码。什么是最简单,最快捷的方法?该程序将仅在Windows上执行。
答案 0 :(得分:20)
从非托管代码中调用.NET DLL基本上有两种情况:
.NET DLL不公开COM接口。在这种情况下,您有两种可能性(简化):
2.A。按照此处所述主持CLR:Loading the Common Language Runtime into a Process
2.B.编写一段托管C ++代码(另一个DLL - 用C ++ / CLI编写)来包装.NET DLL并向未受管客户端公开“旧方式”DLL导出。
我不是特别了解sharpbox系统,但它看起来像是纯.NET而且不暴露COM接口,因此2.b可能是最好的方法(不那么容易......)。也许它有一个可以使用的REST / Web更简单的API。
PS:您还可以将导出添加到.NET DLL。这里描述了这个:Is is possible to export functions from a C# DLL like in VS C++?但它有点hacky。