将目前为独立可执行文件开发的C++项目转换为DLL

lam*_*mas 5 c++ dll visual-studio

(我在Windows 7 64位计算机上使用Microsoft Visual Studio 2010)

我开发了一个C++程序,它更像是一个随着时间的推移变得非常复杂的库.它现在作为一个简单的可执行程序工作,但我想将其转换为DLL,以便其他程序可以轻松访问其功能.

我对使用DLL没有任何经验,但我想避免在此过程中进行大量额外的工作和代码更改.

我知道我可以选择编译目标为"DLL",但我觉得单独不能完成这项工作.

  • 如果我成功将项目编译成DLL文件,如何从可执行项目中使用其中的函数?

  • 我可以避免使用_dllexport并导入每个名称的每个函数吗?

  • 如何静态链接DLL,以及它的(dis)优势是什么?

Ton*_*nyK -5

切换到 MinGW 下的 gcc。构建和链接到 DLL 就像构建和链接到静态库一样简单。它甚至可以透明地处理 C++ 名称修改(但调用程序也需要使用 gcc 进行编译)。

  • GCC 这样做很好,但是由于工作环境的限制,这可能不可行。此外,切换编译器可能比将构建类型从 EXE 更改为 DLL 要做更多的工作。 (3认同)
  • @TonyK:“切换到(插入整个其他工具集)”,当当前的东西可以充分完成工作时,对于只想完成工作的人来说并不是很有帮助。 (2认同)