访问另一个DLL中的类?

时间:2016-01-18 09:47:59

标签: delphi dll delphi-2009

是否有一种从另一个dll导出和使用类的方法, 我有两个dll,我正在尝试访问两者之间的类,我想知道这是否可行。

1 个答案:

答案 0 :(得分:3)

有多种方法可以实现这一目标,包括但不限于以下内容:

  1. 使用运行时包而不是DLL。然后,您可以使用来自其他模块的任何类型,变量等。请注意,这会强制您在所有模块中使用运行时包,并使用相同版本的Delphi编译所有模块。
  2. 继续使用DLL,但通过接口而不是Delphi类访问类型。与类不同,接口可以跨DLL边界导出。
  3. 继续使用DLL,但使用单位范围过程和函数而不是类来访问类型。这将引导您进入与Win32接口具有相同性质的接口。
  4. 在上述选项中,它们按便利性降低的顺序排列。最方便的是使用运行时包,但这可能会对您造成不良约束,即所有模块都使用相同的Delphi版本进行编译。与Win32风格的接口相比,接口通常更便于使用,但在设置此类体系结构时可能会有更多的编程开销。您必须做出最适合您需求的选择。

    如果您可以首先避免使用单独的模块,并将所有内容构建到单个可执行文件中,那么这是最方便的方法。