C++ - 如何永久导入DLL文件

C++ - How to import DLL file permanently?

本文关键字:DLL 文件 导入 何永久 C++      更新时间:2023-10-16

可能的重复项:
如何将动态 dll 转换为静态库?

假设我们有一个 DLL 文件。命名为"dllfile.dll"。我想将其导入到我的C++项目(.exe,Dev-C++ 上的控制台应用程序),以便它符合 DLL 文件本身,然后我可以发布它而无需将.dll文件包含在与我的.exe文件相同的目录中。有什么建议吗?

为此需要一个静态库,通常不能为此使用 DLL 编译的代码。

如果您有 DLL 的源代码,您应该能够将其编译为静态库并链接到该库。这将导致不依赖于该库的 DLL 文件。

我可以发布它,而无需将.dll文件包含在与.exe文件相同的目录中。

一般来说,你不能这样做。

为此,您需要反编译 dll 并将其转换为静态库,这将违反免费软件、专有、GPL 和 LGPL 项目的许可证。静态链接到 dll 的内容可能会引入问题(CRT 混淆)。

或者,您可以尝试获取库 dll 表示的静态库版本,并静态链接。这对于专有项目(除非你愿意付出很多并且他们愿意出售),免费软件项目来说可能是不可能的,不能用于GPL/LGPL dlls(静态链接=>派生作品=>你的项目现在是GPL/LGPL,这可能不是你想要的)。