访问另一个DLL中的类?

费罗

有没有一种方法可以从另一个dll导出和使用类,我有2个dll,并且我试图在两者之间访问类,想知道是否可行。

戴维·赫弗南

有多种方法可以实现此目的,包括但不限于以下几种:

  1. 使用运行时程序包而不是DLL。然后,您可以使用其他模块中的任何类型,变量等。请注意,这迫使您在所有模块中使用运行时程序包,并使用相同版本的Delphi编译所有模块。
  2. 继续使用DLL,但是通过接口而不是Delphi类访问类型。与类不同,接口可以跨DLL边界导出。
  3. 继续使用DLL,但是使用单元范围的过程和函数而不是类来访问类型。这将导致您进入与Win32接口性质相同的接口。

在上述选项中,它们以递减的顺序排列。最方便的方法是使用运行时程序包,但这可能会给您带来不希望的约束,即所有模块都使用相同的Delphi版本进行编译。接口通常比Win32风格的接口更方便使用,但是在设置这种体系结构时可能会有更多的编程开销。您必须做出最适合自己需求的选择。

如果您可以避免一开始就使用单独的模块,而是将所有内容都构建到一个可执行文件中,那将是最方便的方法。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章