Delphi 再看启动流程

阅读 68

2023-08-31


Project.DPR
 InitExe
 InitiateModule
 StartExec
    SetExceptionHandler
    InitUnits
           sysInit
             System
                FPUMaskInit
                FPUInit
                系统相关GetVersion....
             Types
             Windows
             Messages
             ActiveX
             SysConst
             SysUtils
             VarUtils
             Variants
             RtlConsts
             TypInfo
             Classes
             Graphics...
             StdCtrls...
             Dialogs....
             Controls...
             Forms
 TApplication.Iniatiate
 TApplication.CreateForm
 TApplication.Run

 [SysUtils]
 InitExceptions;
 [Variants] 
 InitializeCriticalSection(LVarTypeSync);
 [classes]
 InitThreadSynchronization;
 AddModuleUnloadProc(ModuleUnload);
 GlobalNameSpace := TMultiReadExclusiveWriteSynchronizer.Create;
 RegGroups := TRegGroups.Create;
 IntConstList := TThreadList.Create;
 GlobalFixupList := TThreadList.Create;
 [grapics.pas]
 InitScreenLogPixels;
 InitializeCriticalSection(BitmapImageLock);
 InitializeCriticalSection(CounterLock);
 StockPen := GetStockObject(BLACK_PEN);
 StockBrush := GetStockObject(HOLLOW_BRUSH);
 StockFont := GetStockObject(SYSTEM_FONT);
 StockIcon := LoadIcon(0, IDI_APPLICATION);
 InitDefFontData;
 FontManager := TResourceManager.Create(SizeOf(TFontData));
 PenManager := TResourceManager.Create(SizeOf(TPenData));
 BrushManager := TResourceManager.Create(SizeOf(TBrushData));
 PatternManager := TPatternManager.Create;
 BitmapCanvasList := TThreadList.Create;
 CanvasList := TThreadList.Create;
 RegisterIntegerConsts(TypeInfo(TColor), IdentToColor, ColorToIdent);
 RegisterIntegerConsts(TypeInfo(TFontCharset), IdentToCharset, CharsetToIdent);
 [Controls.pas]
 NewStyleControls := Lo(GetVersion) >= 4;
 InitControls;
 Mouse.create
 Screen.create
 Application.create
 StartClassGroup(TControl);
 ActivateClassGroup(TControl);
 GroupDescendentsWith(TCustomImageList, TControl);
 GroupDescendentsWith(TContainedAction, TControl);
 GroupDescendentsWith(TCustomActionList, TControl);
 [Forms]
 InitProcs;
 RM_TaskBarCreated := RegisterWindowMessage('TaskbarCreated');
 Classes.RegisterFindGlobalComponentProc(FindGlobalComponent);
 [Dialogs.pas]
 InitGlobals;
 StartClassGroup(TControl);
 ActivateClassGroup(TControl);
 GroupDescendentsWith(TCommonDialog, TControl);
 [Project] 
 Application.Initiate
 Application.CreateForm
 Application.Run

精彩评论(0)

0 0 举报