gpt4 book ai didi

c# - 在 Visual Studio Express 2015 中的同一个项目中混合使用 c++ 和 c#

转载 作者:行者123 更新时间:2023-11-30 02:25:41 29 4
gpt4 key购买 nike

我有一段非托管 native C++ 代码(一个类),我想将其集成到 C# .NET 程序集中。

我(认为)我知道我有两个选择:

  1. 将我的 native C++ 代码打包到非托管 DLL 中,并使用 PInvoke(DllImport 等)从 C# 代码加载和运行它;
  2. 使用 C++/CLI 创建托管包装 C++ 类,该类又引用我的非托管 native C++ 类,为此我找到了一些示例。

假设我想选择选项 2 并使用 Visual Studio Express 2015 IDE GUI,而不是直接从命令行调用编译器。

是否需要为C#(project "C#")和C++/CLI-C++/native(project "C++")这两个部分做两个独立的project,然后引用(add reference)project的DLL输出文件"C++”来自项目“C#”并静态链接它?这是唯一的方法,还是可以通过为每个文件指定不同的编译器和不同的编译器选项,将 C++ 源文件直接集成到项目“C#”中?

最佳答案

如果您选择选项 2。您必须创建 3 个项目:

  1. C# 项目
  2. 托管 CLI/C++(包装器)项目 (dll)
  3. 原生 C++ 项目(dll 或 lib)

将包装器的引用添加到您的 C# 项目,并将 native 项目的引用添加到您的包装器。但是,您可以将 native C++ 代码直接添加到包装器并删除第三个项目。但是 afaik 你不能在其他原生 C++ 项目中使用包装器。

您不能将 C++ 代码直接添加到 C#,因此您必须使用您提到的选项之一。

关于c# - 在 Visual Studio Express 2015 中的同一个项目中混合使用 c++ 和 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43912970/

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