рдбреЗрд▓реНрдлреА рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдВрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдкрд░рд┐рдЪрдп



рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЬрдм рд╕рд┐рд╕реНрдЯрдо RTL рдЗрдХрд╛рдЗрдпреЛрдВ рдХрд╛ рд╕рдВрдЪрдп рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдХрд╛рд░ рдЕрднреА рднреА 4k рдЗрдВрдЯреНрд░реЛ рдпрд╛ 64k рдбреЗрдореЛ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдбрд┐рдореЛрд╕рд┐рди рдХреА рдХрд▓реНрдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдХрд╛рдЯ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХрдВрдкреНрд░реЗрд╢рд░реНрд╕ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдпреВрдкреАрдПрдХреНрд╕ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рд╣реИред рд▓реЗрдХрд┐рди рд▓рд┐рдВрдХрд░ рдХрдВрдкреНрд░реЗрд╢рд░реНрд╕ рд╣реИрдВ, рдЬреЛ рдЙрдирдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг, рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдЯреЗрдЬ рдкрд░ рднреА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рдЬреЛрдбрд╝рддреЛрдбрд╝ рдкреИрджрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд рд▓рд┐рдВрдХрд░ рдХреНрд░рд┐рдВрдХрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА , рдЬреЛ рдХрд┐ рдбреЗрд▓реНрдлреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЬрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдерд╛ред



рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?



рдкрд╣рд▓рд╛ рдХрджрдо рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рд╕рдВрдХрд▓рдХ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдорд╢реАрди рдХреЛрдб рд╕реНрдерд┐рдд рд╣реИред рд▓рд┐рдВрдХрд░ рдХрд╛ рдХрд╛рд░реНрдп рдЗрди рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рддрдерд╛рдХрдерд┐рдд рдХрд╛рд░реНрдпреЛрдВ (рдкрддреЗ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛) рдХреЛ рд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреАрдИ рд╕реЗрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рд╕реАрдзреЗ рдХреЛрдб рд╕реЗрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рдЖрдпрд╛рдд рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрддреА рд╣реИред рдкреАрдИ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреА рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рд╣реЗрдбрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд▓рдЧрднрдЧ 10 рдЧреБрдирд╛ ( рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ ) рдХрдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдкреАрдИ рдореЗрдВ рдЖрдпрд╛рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ - рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ dll рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдЕрдЧрд░ dll рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдиреБрдХреНрд░рдордг рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред



рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХрдВрдкреНрд░реЗрд╢рд░реНрд╕ рдЕрдкрдиреЗ рдбрд┐рдХрдВрдкреНрд░реЗрд╕рди рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреЗрд╢ рдХрд░рдХреЗ рдХреЛрдб рдФрд░ рдЖрдпрд╛рдд рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдХреНрд░рд┐рдВрдХрд▓рд░ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдирд╡ рдЬрд╛рддрд┐ (рдкреИрдереЛрд╕) рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд┐рдд рдкреАрдИ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬреНрдЮрд╛рди рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдбреНрдбреА рдХреЛ рдПрдХреНрд╕рдИ рдХрдЯ рджреЗрддрд╛ рд╣реИред



рддреИрдпрд╛рд░реА рдФрд░ рд╕рдВрдХрд▓рди



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛, рдЕрдм рд╣рдо рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЙрддрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдкреАрдврд╝реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд░реИрдХ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрд▓реНрдлреА рдХреЗ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдг 5 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдУрдПрдордПрдл рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕рднреА рд╕реА ++ рдХрдВрдкрд╛рдЗрд▓рд░ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдВрдХрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдХреЙрдлрд╝ рдкреНрд░рд╛рд░реВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдХреБрдЫ "рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░" рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрд▓реНрдлреА 3 рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ COFF рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк COFFs рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ Microsoft рд╕реЗ рдПрдХ рдорд╛рдирдХ рд▓рд┐рдВрдХрд░ рд╣реИ рдЬреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдХреНрд░рд┐рдВрдХрд▓рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реНрдлреА 3 COFF рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд▓реЛрдЧреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдВрдХрд▓рди рдФрд░ рд╕реБрдзрд╛рд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:

dcc32.exe myunit.pas -jP link.exe -edit myunit.obj
      
      





рддреЛ, рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХреЗрд╡рд▓ 2 рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрд╛рдХреА рд╣реИрдВ: рдЯреНрд░рд┐рдорд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рдирд╛рдордХрд░рдг рдореЗрдВ рдЕрдВрддрд░ред



рдбреЗрд▓реНрдлреА рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ System.pas рдФрд░ SysInit.pas рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рд╕рднреА рдореМрд▓рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕рд░рдгрд┐рдпреЛрдВ, рдХрдХреНрд╖рд╛рдПрдВ, рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдбреЗрдореЛрд╕реАрди рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреНрдп рдмрдХрд╡рд╛рд╕) рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╕реНрдерд┐рдд рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рдпрдВ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рдлрд▓ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдбреЗрд▓реНрдлреА рд╕рдВрдХрд▓рдХ рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди / рдлрд╛рдЗрдирд▓реЗрд╢рди рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реЛрдВред рдЗрд╕рд▓рд┐рдП, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдФрд░ рдЗрдХрд╛рдИ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╛рд╕реНрдХрд▓ рдбрд┐рдореЛрд╕реНрдХреАрди рдХреЛ рдХрдард┐рди рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрдИ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореИрдВ рдРрд╕реЗ рдЦреБрд╢реА рдХреЗ рд▓рд┐рдП System.pas рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:

unit System;

interface

type

TGUID = Byte;

var

_HandleFinally : Byte;

implementation

end .








рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрд╣реВрдБрдЧрд╛ рдХрд┐ рдореВрд▓ рд░реВрдк рд╕реЗ _HandleFin рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмреЙрд▓реНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рд╕реЗ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╣рдорд╛рд░рд╛ рд▓рд┐рдВрдХрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░реНрдпреЛрдВ рдХреА рдХрд╕рдо рдЦрд╛рдП, рд╣рдо рдПрдХ рдЪрд░ рдХреЗ рд╕рд╛рде рдРрд╕реА "рд╣реИрдХ" рдХрд░рддреЗ рд╣реИрдВред



SysInit.pas рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЗ рдбреЗрдореЛ рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рддрд╛рдХрд┐ рдпреВрдирд┐рдЯ рд╣реАрдк рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рди рд╣реЛред рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕реАрдзреЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

unit SysInit;

interface

var

_HandleFinally : Byte;

procedure ExitProcess(uExitCode: Cardinal); stdcall; external 'kernel32.dll' name '_ExitProcess@4';

implementation

initialization

//... ...

ExitProcess(0);

end .








рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рдардХ рдХреА рдЧрд╣рд░реА рдЖрдВрдЦ рдмрд╛рд╣рд░реА dll рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдкрд░ рдзреНрдпрд╛рди рджреЗрддреА рд╣реИред рдпрджрд┐ рдЕрд░реНрде рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╕ рд╢реБрд░реБрдЖрдд рдореЗрдВ "_" рдФрд░ рдЕрдВрдд рдореЗрдВ "@parameter_size" рдЬреЛрдбрд╝реЗрдВ, рдпрд╛ рдЖрдк рдиреЛрдЯрдкреИрдб рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд┐рд░ рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдирдХрд▓реА рдЪрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдпрд╣ рдорд╛рдорд▓рд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд▓реНрд▓реЗрдмрд╛рдЬреА рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рд╣реИ:

 rm system.dcu rm system.obj rm sysinit.dcu rm sysinit.obj echo -------------- dcc32.exe system.pas sysinit.pas -jP link.exe -edit sysinit.obj crinkler.exe kernel32.lib sysinit.obj /OUT:test.exe /ENTRY:initialization$qqrv /PRINT:IMPORTS /PRINT:LABELS /SUBSYSTEM:WINDOWS /COMPMODE:SLOW /UNSAFEIMPORT /HASHSIZE:256 /HASHTRIES:1000 /ORDERTRIES:10000 /TRUNCATEFLOATS:8 pause
      
      





рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдХреБрдЫ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ 572 рдмрд╛рдЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдл рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдЕрдм рдПрдХ рдбрдореА рдлрд╛рдЗрд▓ рдкрд░ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдЙрдкрд▓рдмреНрдзрд┐ рдирд╣реАрдВ рд▓рдЧрддреА рд╣реИ, рддреЛ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдХреЛрдб рдмрдврд╝рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдкреНрд░реЗрд╕рд░ рдкреНрд▓реЗ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред



рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрд░рд┐рдВрдХрд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╕рднреНрдп рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛:

 link.exe kernel32.lib user32.lib gdi32.lib opengl32.lib sysinit.obj /OUT:test_orig.exe /ENTRY:initialization$qqrv /MERGE:.rdata=.text /MERGE:_INIT_=.text /FILEALIGN:512 /SECTION:.text,ERWX /IGNORE:4078 /IGNORE:4108 /IGNORE:4089 /NODEFAULTLIB /SUBSYSTEM:WINDOWS
      
      





рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рддреБрд░рдВрдд рд╣рдорд╛рд░реЗ 1.5kb рдбрдореА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред



рдбреЗрдореЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдЧреЛрд▓рд╛ рдмрд╛рд░реВрдж



All Articles