【问题标题】:C++ mangaged class and c#C++托管类和c#
【发布时间】:2013-10-01 11:45:59
【问题描述】:

我有两个托管 c++ 类。用于与 i2C 设备通信。我需要在 c# 中使用它们。我有 2 个具有源和声明的“.h”文件。我是否需要将其转换为 c#,或者如果我正在创建一个 DLL,我该怎么做?

代码是这样的:

public ref class Class1 
{
   AnotherClass object = new Anotherclass();
   Method1();
   method2()
}

public ref class AnotherClass
{
}

【问题讨论】:

    标签: c# c++-cli managed


    【解决方案1】:

    将 C++/CLI 和 C# 项目添加到同一个解决方案中。然后将 C# 项目中的引用添加到 C++/CLI 项目中

    【讨论】:

      【解决方案2】:

      使用 ref 类 的目的是让 C++/CLI 编译器将类的元数据生成到程序集中。不需要 .h 文件,任何 .NET 编译器都可以读取该元数据并使用该类。

      只需在您的 C# 项目中添加引用即可。最好将 C++/CLI 项目和 C# 项目放在同一个解决方案中,这样您就可以使用项目参考。右键单击 C# 项目,添加引用,项目选项卡。

      【讨论】:

      • 你的意思是把c++项目加到C#里?这是一个包含源文件的测试应用项目
      • 在testapp的情况下输出是一个exe。那我怎么能在 c# 中获取元数据(问,因为我对此一无所知)
      • 那不是我说的。 C++/CLI 项目旨在测试 ap 。将其添加到解决方案中会取得丰硕成果吗?以及 C++/CLI 项目中的内容将被引用到 c# 项目
      • Anyways.Project 选项卡为空
      • 我怀疑在你弄清楚如何创建一个包含两个项目的解决方案之前你会得到任何结果。其中一个是生成 DLL 的 C++/CLI 项目,另一个是 C# 测试应用程序。所以你实际上会测试你在你的问题中说你想做什么。这是一项非常基本的任务,有许多教程和介绍性书籍向您展示如何使用 Visual Studio。
      【解决方案3】:

      只需在 C++ (CLI) 中编写这些函数的包装器,然后通过在项目中创建相关引用,.NET 就可以看到和使用它。

      【讨论】:

      • 这个包装器令人困惑(至少对于这段代码而言)。它使用对象,我在我的 c# 代码中需要它们
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      相关资源
      最近更新 更多