将现有的C ++项目编译为DLL

时间:2013-01-18 13:51:18

标签: c++ visual-studio-2008 dll

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

5 个答案:

答案 0 :(得分:2)

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

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

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

  3. 使用P/Invoke调用您的C ++ DLL。这需要最少的C ++编码,但也可能很难使interop正确,特别是如果你正在编组结构或其他复杂的数据类型。

答案 1 :(得分:1)

您至少需要更改

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

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

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

答案 2 :(得分:1)

要了解C ++ / CLI,我找到的一个很好的资源就是这个链接:http://vishnunath.com/cli-programming

答案 3 :(得分:0)

使用COM Interop将C ++类与.NET框架集成。

答案 4 :(得分:0)

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

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