使用托管 C++ 项目中的 C# 类

Posted

技术标签:

【中文标题】使用托管 C++ 项目中的 C# 类【英文标题】:Using a C# class from a managed C++ project 【发布时间】:2016-04-09 18:53:56 【问题描述】:

我有一个包含托管 C++ 项目和 C# 项目的解决方案。 C# 项目是一个类库项目,其中包含我在 C++ 项目中使用的 GUI 类。这很好用,但构建会产生两个 DLL。

有没有办法使用 C++ 项目中的 C# 对象,而无需 C# 项目生成的动态链接库(有没有办法将 C# 类型嵌入到托管 C++ 项目中)?

我正在使用 Visual Studio 2015。

【问题讨论】:

【参考方案1】:

有一种方法,但它远远超出了您用来完成它的工具。

You can use command line tooling to create a multi netmodule assembly.

托管程序集由一个或多个“网络模块”构建。通常在 C# 项目中,只有一个网络模块,C# 编译器构建它,然后将其链接到它生成的程序集中。通过使用命令行工具,您可以只构建一个模块,然后将它与 C++ 模块链接到一个程序集中。

【讨论】:

以上是关于使用托管 C++ 项目中的 C# 类的主要内容,如果未能解决你的问题,请参考以下文章

C++访问托管类(C#类库)

C# 中的非托管 C++ 类

如何添加对由 C# 项目调用的非托管 C++ 项目的引用?

使用来自 C# 的托管 C++ dll

创建要在 C# 中使用的托管 C++ 接口

托管 c++ 库,它是如何工作的?