在C ++中调用C#dll

时间:2016-03-29 11:21:21

标签: c# c++ .net dll

我目前的要求是在c ++控制台应用程序中调用C#dll的一些方法。我有一个示例C#控制台应用程序代码,它调用c#dll中的方法。

C#dll被添加为C#控制台应用程序项目的参考。

using CSharp;

void fn()
{
string retVal;
CSharpApi obj = new CSharpApi("Something");
retVal = obj.Invoke("Something");
obj.Dispose();
....
....
}

CSharpApi的定义

namespace CSharp
{
    public class CSharpApi : IDisposable
    {
        public CSharpApi();
        public CSharpApi(string param1);
        public string Invoke(string param1);
        public void Dispose();
    }
}

我需要编写一个与上述c#控制台应用程序等效的c ++控制台应用程序,但不知道如何实现它。是否可以使用LoadLibrary和GetProcAddress API调用C#dll方法?如果你能给我一些例子,我将非常感激。

1 个答案:

答案 0 :(得分:0)

正如Joachim在评论中提到的那样,最简单的方法是使用C++/CLI managed .NET aplication,它为您提供两全其美的优势,您仍然可以以非托管方式编写大部分代码,并且一种调用托管代码的相对简单的方法。