【问题标题】:Calling C# dll in C++在 C++ 中调用 C# dll
【发布时间】:2016-03-29 11:21:21
【问题描述】:

我目前的要求是在 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 方法?如果您能给我一些例子,我将不胜感激。

【问题讨论】:

  • 为什么不制作一个 C++/CLI 托管的 .NET 应用程序?
  • 虽然我不知道这是可能的,但显然有一个tutorial by Microsoft 涵盖了这个主题。

标签: c# c++ .net dll


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多