【问题标题】:how to Pass C++ Object to C# Class Library如何将 C++ 对象传递给 C# 类库
【发布时间】:2013-12-09 06:14:09
【问题描述】:

我正在做一个项目。在该 C++ 代码中,它引用了一个用 C# 编写的类库。我想将 C++ 类的对象传递给 C# 类库。 那么这可能吗,如果是,请告诉我如何?否则我将不得不向 C# 类库传递大约 100 个参数。

问候, 维韦克

【问题讨论】:

标签: c# c++ visual-c++ class-library


【解决方案1】:

你应该使用编组。

编组是在托管代码和非托管代码之间建立桥梁的过程;将消息从托管环境传送到非托管环境并反向的是本垒打。它是 CLR(公共语言运行时)提供的核心服务之一。

命名空间System.Runtime.InteropServices.Marshal

在这里阅读一篇关于marshling 的好博客

【讨论】:

    【解决方案2】:

    如果您有此选项,您可以将 cpp 文件添加到您的项目中,该文件将使用启用的 CLR(托管 C++)进行编译。您可以从托管 C++ 调用 C# 类。您可以在此处找到示例:

    Managed C++ to form a bridge between c# and C++

    如果您不想在调用本机应用程序中启用 CLR,则另一种选择是创建托管 C++ dll 作为 C++ 和 .NET 之间的桥梁。我使用了这个技巧,它运行良好,但请注意,一旦加载了桥 dll 库,CLR 就会加载到内存中,并且您的进程会被 CLR“感染”。无论如何,你都会有这种效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      相关资源
      最近更新 更多