gpt4 book ai didi

delphi - DLL 集合在另一个指定文件夹中?

转载 作者:行者123 更新时间:2023-12-03 15:18:02 26 4
gpt4 key购买 nike

首先,请原谅我不知道正确的术语,我确信这有一个非常常见的技术名称,我可以简单地通过 Google 寻求帮助 - 但如果我不知道,我就找不到帮助开头的术语。

我正在 Delphi 7 中构建一个模块化系统。有一些应用程序和一堆 DLL。所有应用程序共享这些 DLL,并且某些 DLL 使用其他 DLL。 DLL 当前保存在与应用程序相同的位置。相反,我想将所有这些 DLL 放在一个子文件夹中(EXE 之外的其他位置),但 Delphi 当然不知道如何找到它们。

有没有办法让我的 Delphi 应用程序在某个目录中查找 DLL?它不能使用常量,因为会有一个选项来指定 DLL 的存储位置。

这些 DLL 只是 StdCall 函数的简单集合,没有什么特别的。

编辑:

解释一下为什么我想将 DLL 保留在它们自己的文件夹中:我正在构建的系统将这些 DLL 视为附加组件。默认情况下,系统甚至可能没有任何附加组件。另一方面,它还允许各个供应商构建其他 DLL 并将它们作为附加组件包含在内。然后,每个需要这些附加组件的应用程序将被定向到可以找到它们的文件夹。应用程序本身将有自己的 DLL,该 DLL 与应用程序位于同一目录中。但我想将供应商的 DLL 分开。

正如下面的答案中提到的,我最好的选择是实现 DLL Import 方法,因为 A) 我可以为它导入的每个 DLL 指定一个路径,B) 我可以更好地控制每个 DLL 的使用(是吗?是否需要加载?)以及 C)从技术上讲,每个 DLL 可以单独位于单独的文件夹中(供应商可能希望构建自己的文件夹结构)。这个系统还很不成熟,但我计划进一步提高灵 active 。

最佳答案

如果您在代码中动态加载 DLL,则可以将它们存储在您想要的任何位置,因为无论如何您都必须将完整路径传递给 LoadLibrary/Ex()。如果您静态链接到 DLL,则可以使用 SetDllDirectory()指定要包含在操作系统的 DLL 搜索路径中的附加路径。

关于delphi - DLL 集合在另一个指定文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496868/

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