TObject是编译器定义仍是vcl定义的
TObject是编译器定义还是vcl定义的?
在delphi中,规定所有的类都要从TObject继承,因此我认为TObject应该是由编译器定义的。
在看《inside vcl》时,发现TObject的定义在system.pas中,我又以为是TObject在vcl中定义的。
请问大家认为TObject是编译器定义还是vcl定义的?
------解决方案--------------------
编译器预定义的类型不能被重定义,依据这一标准你就能检验出来了。
------解决方案--------------------
既不是编译器也不是VCL定义的.而是RTL里面的.
不过编译器确实也对TObject做了一些特别的处理.比如VMT什么的.
新版本Delphi提供了重新编译RTL的工程文件.在源代码目录里面.BuildWinRTL/BuildOSXRTL.
网上之前也有精简的System.pas文件,里面精简到只有几行代码.去除了TObject.
最小可以编译出3.5KB的EXE/DLL.
------解决方案--------------------
老书《Delphi源代码分析》开篇也分析了3584字节的win exe
在delphi中,规定所有的类都要从TObject继承,因此我认为TObject应该是由编译器定义的。
在看《inside vcl》时,发现TObject的定义在system.pas中,我又以为是TObject在vcl中定义的。
请问大家认为TObject是编译器定义还是vcl定义的?
delphi
TObject
------解决方案--------------------
编译器预定义的类型不能被重定义,依据这一标准你就能检验出来了。
------解决方案--------------------
既不是编译器也不是VCL定义的.而是RTL里面的.
不过编译器确实也对TObject做了一些特别的处理.比如VMT什么的.
新版本Delphi提供了重新编译RTL的工程文件.在源代码目录里面.BuildWinRTL/BuildOSXRTL.
网上之前也有精简的System.pas文件,里面精简到只有几行代码.去除了TObject.
最小可以编译出3.5KB的EXE/DLL.
------解决方案--------------------
老书《Delphi源代码分析》开篇也分析了3584字节的win exe