也许我是盲人,但我找不到Classes的Free Pascal源文件实现以及像System这样的其他一些单元。大多数情况下,但不仅仅是,我对TObject
,TPersistent
和TControl
代码感兴趣。我在SourceForge的Lazarus和FP网站上搜索过。我的问题是文件列表非常大。由于robots.txt
,Google拒绝搜索。
有一个lclclasses.pas单位,但它不是我想要的 - 在uses
块中它指的是Classes,但是没有文件(我的意思是我不能找到它)像“classes.pas”。
Here我找到了TControl
实现,但这在层次结构中太过分了。
在this page上有一个信息,TPersistent
在“classesh.inc”中定义,我下载了源代码,它确实在rtl \ objpas \ classes \ classesh.inc中,但是,它似乎这个文件只是单位的interface
部分。
我也将这个问题标记为“delphi”,因为实际上如果Delphi有一些开源代码,我也可以接受。如果这个基类TObject
和TPersistent
的实现是某种内置功能(我认为是System
单元),我也可以看看C(或任何其他语言)来源。
有人可以帮我找到Classes单元的实现和那里定义的对象吗?
答案 0 :(得分:2)
因为FPC支持这么多不同的平台,所以RTL代码的结构有点复杂。
但是您感兴趣的RTL代码的平台无关部分可以在source\rtl\objpas
目录下找到。
Classes
的代码位于source\rtl\objpas\classes
的包含文件中。相关文件为classesh.inc
和classes.inc
。前者包含接口部分的代码,后者包含实现部分的代码。System
单元具有高度平台特定性。在source\rtl
下找到您的平台。SysUtils
查看source\rtl\objpas\sysutils
。