如何使用.exe文件运送.dll文件

红星

我有一个依赖于某些.dll文件的应用程序。我知道如果只将它们与.exe文件放在同一文件夹中,就可以使用,但是我不想将30个.dll文件与我的.exe文件一起保留。有什么方法可以将它们与.exe文件放到文件夹中?

甚至更好,是否可以编译它们并将它们与.exe文件链接以具有独立文件?而且,我没有这些动态库的静态版本。

(ps应用程序是用c编写的,用gcc,mingw win64和.dll编译是来自gtk3库)

感谢您阅读我的问题

安格斯·康伯

您有很多选择。

A)掌握库文件Windows上的.lib并与这些库静态链接。

B)有点骇人听闻,但您可以将资源附加到Windows可执行文件中。通常用于字符串,图标之类的东西,但是您甚至可以附加到二进制文件中。但是,如果执行此操作,则可能需要在程序启动时生成dll二进制文件并将其保存到与可执行文件相同的文件夹中。因此,真正做到这一点毫无意义,只需将其分发到与exe相同的文件夹中即可。这样做有什么问题?(查找LoadResource,FindResource,MAKEINTRESOURCE等)

C)如果您不想将dll与exe放在同一路径,则需要将其存储在系统路径env变量中的文件夹中。例如,您可以将它们复制到C:\ Windows-但由于安全性,将更加困难。您可以创建自己的dll_path并将此路径添加到env变量中,作为程序安装的一部分。

D)C)的另一种变化是您将exe位置的一个子目录复制到例如dll_files。然后,您可以使用启动脚本来启动程序,如下所示:

@echo off
set PATH=%PATH%;<path to dll files>
myprogram.exe

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章