1

我正在处理一个继承的项目,其中包括一个成功编译为 .exe 的 C++ 项目。现在我想尝试将这个项目集成到一个 .NET 表单中,所以我想将它作为一个 DLL(从我读过的内容来看,如果我使用 dll 而不是 exe 似乎更容易做到这一点)所以我想编译我的C++ 项目到 .DLL。我尝试通过右键单击项目并调整属性,但即使我在重建项目时选择了 .dll 选项,我仍然得到 exe 文件。

4

4 回答 4

2

以下是三个“最干净”的选项:

  1. 在 C++ 代码周围创建一个C++/CLI(也称为“托管 C++”)包装器,以将函数公开为类方法。然后您可以像调用 C# 类一样从 C# 调用这些方法。

  2. 围绕 C++ 函数创建一个 COM 包装器。与创建 CLI 包装器非常相似,但也可以在非 .NET 环境中使用(例如 VBA)

  3. 使用P/Invoke调用您的 C++ DLL 。这需要最少的 C++ 编码,但也很难使互操作正确,尤其是在编组结构或其他复杂数据类型时。

于 2013-01-18T15:05:26.807 回答
1

你至少需要改变

  • 常规/配置类型
  • 链接器/常规/输出文件

但是您的 DLL 应该实现 DllMain 以确保正确完成运行时初始化。

另一种方法可能是创建一个新的 DLL 项目并添加来自 EXE 的所有代码。这使得项目向导脚本运行适当的行。

于 2013-01-18T15:05:38.600 回答
0

使用 COM 互操作将 C++ 类与 .NET 框架集成。

于 2013-01-18T14:52:31.273 回答
0

在 Visual Studio 中,最容易采用阻力最小的路径。只需创建一个新的空 DLL 项目,将源文件添加到其中,更改 C++ 详细信息(在属性下),瞧!尝试手动更改项目设置似乎总是会留下很多多余的谷壳。

在代码生成下,您可能需要多线程(调试)DLL

于 2013-01-18T15:05:30.847 回答