【问题标题】:what are the possible ways to using c# code in c++在 c++ 中使用 c# 代码的可能方法是什么
【发布时间】:2010-11-25 13:17:28
【问题描述】:

我只是在寻找一种在我的 c++ 项目中重用用 c# 编写的代码的最佳方法。创建 com\service 看起来不是满足我需求的最佳选择。将 c# 代码导出到 dll 并在 c++ 中使用它有多难?我能得到一些建议或例子吗?这是通常的要求还是?请帮我。 我用的是win7、VS2008、win7sdk

谢谢和Rgds,~卡尔文

【问题讨论】:

    标签: c# c++ interop


    【解决方案1】:

    从未命名的可执行文件中执行托管代码是可能的,但并不容易。您可以查看this article 的介绍和this book 进一步了解。

    我个人会在大多数情况下避免这种事情,并且如果可能的话,将 C++ 项目切换到 C++/CLI,以便以最低成本立即获得与 .Net 程序集的兼容性。

    【讨论】:

      【解决方案2】:

      您无法将 C# 代码导出到本机 dll afaik。至少你的臀部不会很痛。您应该事先考虑并用 C 编写可重用的部分,从而创建一个可以从所有语言中使用的本机 DLL。

      另外,您可以尝试托管 C++ - 我个人讨厌它......但是你去吧

      【讨论】:

      • "应该事先想到" --> 不幸的是,它是一个非常大的 c# 代码库,并且是很久以前在我的公司编写\开发的,我想,在这个开发过程中,我在大学和玩反恐精英:)
      【解决方案3】:

      如果您需要使用用 C# C++ 编写的代码,那么您需要首先查看您将从 C++ 代码传递到 C# 代码的所有数据类型。 1. int、enum 等基本数据类型可以从非托管代码传递到托管代码。 2. 如果您想传递类对象,则需要使用编组。

      【讨论】:

        【解决方案4】:

        如果您不能使用 COM(例如,如果已经编写了 .NET 代码),那么您可以托管 CLR,但这是一条漫长的道路……

        查看这些其他文章 How to load CLR into processCreate a C# DLL That Can Be Imported in a Delphi App Using stdcall - Possible?

        【讨论】:

          猜你喜欢
          • 2020-04-08
          • 1970-01-01
          • 2020-03-16
          • 2012-03-03
          • 2015-10-17
          • 2011-08-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多