0

也许我是盲人,但我在类的 Free Pascal 源文件实现和其他一些单元(如 System. 大多数情况下,但不仅是,我对TObject,TPersistentTControl代码感兴趣。我在 SourceForge 上的 Lazarus 和 FP 站点中都进行了搜索。我的问题是文件列表很大。谷歌拒绝搜索是因为robots.txt.

有一个lclclasses.pas单元,但它不是我要找的 - 在uses块中它指的是类,但没有像“classes.pas”这样的文件(我的意思是我找不到它)。

在这里我找到了TControl实现,但这在层次结构中太远了。

此页面上,有一条信息TPersistent在“classesh.inc”中定义,我下载了源代码,它确实在 rtl\objpas\classes\classesh.inc 中,但是,这个文件似乎只是interface单元的一部分。

我也将这个问题标记为“delphi”,因为事实上如果有一些 Delphi 的开源代码,我也可以接受。如果这个基类的实现TObjectTPersistent某种内置功能(System我认为单位是),我还可以看看 C(或任何其他语言)源代码。

有人可以帮我找到类单元的实现和在那里定义的对象吗?

4

1 回答 1

2

因为 FPC 支持的平台非常多,所以 RTL 代码的结构有些复杂。

但是 RTL 代码中与平台无关的部分,也就是您感兴趣的部分,可以在该source\rtl\objpas目录下找到。

  • 的代码Classes在包含文件中source\rtl\objpas\classes。相关文件是classesh.incclasses.inc。前者包含接口部分的代码,后者包含实现部分的代码。
  • System单元是高度特定于平台的。在 下查找您的平台source\rtl
  • SysUtils看下source\rtl\objpas\sysutils。_
于 2013-04-22T08:22:19.960 回答