【发布时间】:2011-12-13 22:05:42
【问题描述】:
首先,请原谅我不知道正确的术语,我确信有一个非常常见的技术名称,我可以简单地谷歌寻求帮助 - 但如果我不知道,我无法找到帮助开头的词。
我正在用 Delphi 7 构建一个模块化系统。有一些应用程序和一堆 DLL。所有应用程序共享这些 DLL,以及一些 DLL 使用其他 DLL。 DLL 当前保存在与应用程序相同的位置。相反,我想将所有这些 DLL 放在一个子文件夹中(EXE 的其他位置),但当然 Delphi 不知道如何找到它们。
有没有办法让我的 Delphi 应用程序在某个目录中查找 DLL?它不能使用常量,因为会有一个选项来指定 DLL 的存储位置。
这些 DLL 只是一个简单的 StdCall 函数集合,没什么特别的。
编辑:
解释我为什么要将 DLL 保存在它们自己的文件夹中的原因:我正在构建的这个系统将这些 DLL 视为附加组件。默认情况下,系统甚至可能没有任何附加组件。另一方面,它还允许不同的供应商构建其他 DLL 并将它们作为附加组件包含在内。然后每个需要这些附加组件的应用程序将被定向到找到它们的文件夹。 应用程序本身将具有自己的 DLL,这些 DLL 将与应用程序位于同一目录中。但是供应商的 DLL 我想分开。
正如下面的答案中提到的,我最好的办法是实现 DLL 导入方法,因为 A)我可以为它正在导入的每个 DLL 指定一个路径,B)我可以更好地控制每个 DLL 的使用(是吗?是否需要加载?)和 C)每个 DLL 在技术上可以单独位于单独的文件夹中(供应商可能希望构建自己的文件夹结构)。这个系统还很不成熟,但我打算进一步提高它的灵活性。
【问题讨论】:
-
你可能想set the PATH
-
@PeterTurner 不,这无济于事,因为我有许多不同的 DLL - 有些可能位于与其他不同的目录中。另外,我在上面的问题中添加了更多内容来解释原因。