我正在处理一个继承的项目,其中包括一个成功编译为 .exe 的 C++ 项目。现在我想尝试将这个项目集成到一个 .NET 表单中,所以我想将它作为一个 DLL(从我读过的内容来看,如果我使用 dll 而不是 exe 似乎更容易做到这一点)所以我想编译我的C++ 项目到 .DLL。我尝试通过右键单击项目并调整属性,但即使我在重建项目时选择了 .dll 选项,我仍然得到 exe 文件。
问问题
2672 次
4 回答
2
以下是三个“最干净”的选项:
在 C++ 代码周围创建一个C++/CLI(也称为“托管 C++”)包装器,以将函数公开为类方法。然后您可以像调用 C# 类一样从 C# 调用这些方法。
围绕 C++ 函数创建一个 COM 包装器。与创建 CLI 包装器非常相似,但也可以在非 .NET 环境中使用(例如 VBA)
使用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 回答