gpt4 book ai didi

.net - 如何使用非托管代码中的托管代码?

转载 作者:行者123 更新时间:2023-12-04 18:54:07 26 4
gpt4 key购买 nike

如何从 native C++(非托管代码)调用 .NET 代码?我想将 .NET 代码公开给我的非托管 (C++) 应用程序,然后使用它们。更具体地说,我想从 native C++ 调用 C# :)。我知道有很多方法,但你能告诉我每种方法的优缺点吗?顺便说一句,我不想​​使用 COM 那么现在有什么选择?

是否可以将 C# 代码包装在 C++/CLI 中,然后从 C++ 中调用它?如果是这样,我该怎么做?如何将 C# 包装在 C++/CLI 中,然后从 C++ 调用它?

最佳答案

我最近才写过它。它是关于 Delphi 的,但这并不意味着它也不能与 C++ 一起使用。

.NET component in DELPHI 2009

即使对 C++ 了解不多,我仍然知道 IUnknown 和 COM 兼容的接口(interface)引用应该可以从 C++ 中很好地使用(如果您需要传递对象,而不仅仅是结构)。

  • 您可以使用 Microsoft 的 C++/CLI 来引用您的 C# 代码并将其导出为普通的 DLL 函数。
  • 您也可以下载 MSBuild task我写道,它允许您直接从 C# 导出函数。类似于如何使用 DllImportAttribute。

  • 此 C# 代码将导出一个函数“YourExportName”,该函数可以像使用任何 c 兼容函数一样使用。
    class Sample
    {
    [DllExport("YourExportName")]
    static int TestFunction(int left, int right)
    {
    return left + right;
    }
    }

    关于.net - 如何使用非托管代码中的托管代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1635679/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com