看到OBJECT PASCAL中的一段话,未能理解,请高手解释一下:)(200分)

  • 主题发起人 主题发起人 lk007
  • 开始时间 开始时间
L

lk007

Unregistered / Unconfirmed
GUEST, unregistred user!
(以下内容摘自《Delphi 技术手册》
Delphi 中定义的绝大部分变量是System 和SysInit 单元中的普通变量。这两个单元的区别是:应用程序
加载的每个包都共享System 单元中的变量而拥有自己SysInit 单元的副本。若你知道自己在做什么,你
可以改变它们的值。但是如果不小心的话,也会给Delphi 造成很大的破坏。其它变量(Self 和Result)
是内置于编译器的,有着特殊的用途。)
--------------------------
这两个单元的区别是:应用程序
加载的每个包都共享System 单元中的变量而拥有自己SysInit 单元的副本
^^^^^^^^^^^^^^^^^^^^^^^何意?
 
比如说, printer 是一个全局变量
你在应用程序中使用了pinter,同时,你在dll中也使用了printer,
虽然dll也包含在应用程序中,
但是这两个printer是不同的,是两个printer
 
不知道我理解得是否正确:
System 中定义的变量是全局变量,在Dll中和App引用的是同一个地址
SysInit 中定义的变量的是在Module范围内的,比如 HInstance 在Dll中和在App中各有自己的值。
 
刻个记号
 
其实也就是生命周期不一样。
system中的变量属于整个应用程序,
sysinit中的变量属性某个单元。
 
多人接受答案了。
 
请教lk007,
我没有在《Delphi 技术手册》这本书中看到你所说的内容。如果可能,你告诉我一下页
码,我看的是O'Reilly的《Delphi 技术手册》,电力出版社的中文译本。

谢谢。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
D
回复
0
查看
948
DelphiTeacher的专栏
D
后退
顶部