delphi - Where and When is Application (TApplication) instance created? -
where , when application
instance created? (same goes screen
instance) .
i don't see in forms
or system
initialization
section. in cpu windows before application.initialize
, see phone call @_initexe
(sysinit) - leads _startexe
(system) , whole lot of asm
code - not create application
instance far can tell.
what missing here?
it's easy plenty work out code. text search tapplication.create
. illustration using ide's find in files feature.
but can lazy , debugger it.
enable debug dcus. set breakpoint intapplication.create
. run. when programme breaks, @ phone call stack. see tapplication
object instantiated initcontrols
in controls
unit. , initcontrols
called initialization
section of controls
unit.
the total phone call stack plain vanilla vcl app looks this:
vcl.forms.tapplication.create(nil) vcl.controls.initcontrols vcl.controls.vcl.controls system.initunits system._startexe(???,???) sysinit._initexe($5a81bc) project1.project1 :749933aa kernel32.basethreadinitthunk + 0x12 :76f09ef2 ntdll.rtlinitializeexceptionchain + 0x63 :76f09ec5 ntdll.rtlinitializeexceptionchain + 0x36doing same thing tscreen.create
, see tscreen
object instantiated in initcontrols()
.
i won't seek , explain of this. think there's plenty info , advice here work out here. although phone call stack xe3 application, same delphi 5 application.
delphi debugging initialization delphi-5
No comments:
Post a Comment