【发布时间】:2011-05-01 11:00:20
【问题描述】:
当我的程序打开时,在我的任何代码实际运行之前,它会自动尝试加载它所导入函数的各种 DLL。它会先查看应用所在的文件夹,然后再查看一些特定的位置,例如 \Windows 和 \Windows\System32。
如果我想使用一些自定义 DLL,但我不想将应用程序的文件夹与它们混在一起,有没有办法将它们安装到子文件夹中,然后在 EXE 中放入一些东西来告诉它在哪里查看?
【问题讨论】:
-
梅森我错过了什么?您已经在自己寻找不同的位置。多一个应该不是问题吧?毕竟大多数插件系统都要求插件编写者将他们的 dll 安装在主应用程序的指定文件夹中?还是您希望文件夹名称是免费的?在那种情况下,所有“正常”的配置选项方式都对您开放?为什么要“将某些内容放入 EXE”?迷惑了... :-)
-
@Marjan:您缺少的是,这些是内置的依赖项,由 Windows 在加载时加载, 在 DPR 的第一行之前,而不是动态加载-在应用程序启动后被加载的插件。
-
在这种情况下,您仅限于 windows 路径,并且必须将您的 dll 放在那里的文件夹中,或者将您的 dll 文件夹添加到 windows 的环境路径中...如果您不想弄乱机器的 Windows 路径:您可以从 bat/cmd 文件运行您的应用程序并在启动应用程序之前更改路径,这应该限制对环境设置的更改(持续时间)我认为是 cmd 实例。
标签: windows delphi dll search-path