【问题标题】:How do I create a Delphi Class library如何创建 Delphi 类库
【发布时间】:2018-07-03 15:37:49
【问题描述】:

创建 Delphi 类库有哪些选择?

我有一个在多个程序中使用的类 TWidget。目前,我有每个程序链接到 \common\UnitWidget.pas 源代码文件。但是,当 TWidget 发生变化时,我不得不重新编译并重新发布所有引用它的程序。

我对 C# 不是很熟悉,但我相信他们有一个类库的概念,它允许类被封装和跨程序共享。我认为这就是我在 Delphi 中寻找的东西。

我在 Delphi 中制作了一些 DLL,但我不知道它们是否可以有效地用作类库。似乎包是要走的路,我应该本着 RTL 包的精神制作自己的包。我不知道我会遇到什么样的“陷阱”、版本控制等。但是,在我走得太远之前,我认为最好谦虚地问一下其他人是如何解决这个问题的。

谢谢!

【问题讨论】:

  • 听起来您正在寻找 Delphi 软件包。例如:thoughtco.com/bpl-vs-dll-1058181
  • 在没有 cmets 的情况下再次投反对票。 stackoverflow 变得更加用户友好的原因是什么?
  • @dummzeuch:虽然我也不喜欢它,但人们可以在不发表评论的情况下投反对票。这在 SO 上很常见。

标签: class delphi package


【解决方案1】:

你必须

  1. 为您的类创建一个运行时包并
  2. 使用运行时包构建您的程序(复数,因为在这种情况下,您必须将运行时包用于您的包所使用的 rtl 和 vcl/fmx。

Embarcadero Dokwiki on runtime packages

【讨论】:

  • 这很痛苦,因为您必须部署大量运行时 bpls 而不仅仅是一个 exe。什么是 C/C++ lib 文件的等价物?
  • 据我了解,C lib 文件是 .obj 文件的集合。 Delphi 等价物将是 dcu 文件的集合(dcu 文件是一个单元的编译版本),但据我所知,这样的东西不存在。您当然可以提供包含您的源代码的所有单元的 dcu 文件。但请注意,dcu 文件是特定于版本的(来自 Delphi N 的 dcu 文件不能在 Delphi N+1 中使用,反之亦然)并且还取决于编译器设置。
猜你喜欢
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 2011-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多