gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:34 28 4
gpt4 key购买 nike

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

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

我在使用 DLL 方面一点经验都没有,但我想避免在此过程中进行大量额外的工作和代码更改。

我知道我可以将编译目标选择为“DLL”,但我感觉单独做不到这一点。

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

  • 我能否避免使用 _dllexport 并按名称导入每个函数?

  • 如何静态链接 DLL,这样做的(缺点)优点是什么?

最佳答案

老实说,我会看一下 DLL export docs并选择最适合您的导出方法。在任何情况下,您都可以简单地从客户端应用程序中按名称引用导出的函数,就像使用静态库一样。

当您将项目构建为 DLL 时,IDE 将生成

  1. 运行时的DLL文件和
  2. 包含导出的函数解析信息的 LIB 文件 - 这就是您链接的对象。

根据定义,您不能静态链接 DLL(即 DYNAMIC 链接库)- 相反,您链接到从 DLL 导出函数的库,然后在运行时加载 DLL,或者在进程启动时或按需自动执行。也可以在没有任何静态链接的情况下完全按需加载 DLL(请参阅 LoadLibraryEx 等)。

关于c++ - 将目前作为独立可执行文件开发的 C++ 项目转换为 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954144/

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