NSIS: $ 0- $ 9, $ R0- $ R9 рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛

рд╕рднреА рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ :)

рдЯрд╛рд░рдЧреЗрдЯ рд╣рдм рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ ... - рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╖рдпрдЧрдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд "рд╕реА" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рдардХ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдорд╣рд╕реВрд╕ рдХрд░ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп


NSIS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЗрдВрд╕реНрдЯреЙрд▓рд░ / рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓рд░ рд▓рд┐рдЦрддреЗ рд╕рдордп рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк ред

рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп


Nsis рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧреБрдВрдЬрд╛рдЗрд╢ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ 20 рд╣реИрдВ: $ 0- $ 9 рдФрд░ $ R0- $ R9ред
рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рдХреНрд╖реНрдп рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ, рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рднреА nsis рдЪрд░ рдХрд╛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░рд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╡реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдХреНрд╡рд╛рд▓реАрдлрд╛рдпрд░ рдХреЙрд╕реНрдЯ (C / C ++ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП) рдХреЗ рд╕рд╛рде:

!define variable1 ''value 1''

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

  • рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдХрд╛ рд╕реНрдерд┐рд░ рдЪрд░;
  • рдШреЛрд╖рдгрд╛ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ;
  • рд╕рдВрдкрд░реНрдХ рд╡рд┐рдзрд┐: $ {variable1}

Var variable2

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:

  • рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рдЪрд░;
  • рдпрд╣ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдХрд╣реАрдВ рднреА рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рдКрдкрд░;
  • рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХрдИ рдмрд╛рд░ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдмреНрд▓реЙрдХ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рдЕрдВрджрд░;
  • рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐: $ variable2

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

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг


рд▓реЗрдХрд┐рди рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:


Function F1
    StrCpy $0 "vladimir"
FunctionEnd

Function F2
    StrCpy $0 "alexei"
    Call F1
    ${If} $0 == "alexei" ; //  $0  "vladimir"
        ; // -  ...
    ${EndIf}
FunctionEnd

рдФрд░ рдЖрдк рдЗрд╕рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ nsis рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛рд░реАрдЧрд░реЛрдВ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ:

  • рдХрд┐рд╕реА рдиреЗ рдмрд╕ рд╕рднреА рдЪрд░ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрд╛ (рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╕реНрдорд╛рд░рдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ);
  • рдХрд┐рд╕реА рдиреЗ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓рдЧ-рдЗрди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрдЯреИрдХ рдкрд░ рдкреБрд╢ рдХрд┐рдпрд╛, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж рд╡реЗ рдкреЙрдк рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдореВрд▓реНрдп рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ;
  • рдФрд░ рдХрд┐рд╕реА рдиреЗ рд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд░ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрдВрддреНрд░ рдХреА рдХрдореА рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдореИрдВ рдЦреБрдж рдХреЛ рдЙрд╕реЗ (рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ) рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, NSISList рдХрд╛ рд▓рд┐рдВрдХ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рд╕реВрдЪреА-рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рд╕реА ++ рдореЗрдВ рд╕реВрдЪреА :: рд╕реА + + рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рджреВрд╕рд░рд╛ рдЪрд░рдг рд╕рдорд╕реНрдпрд╛-рд╕рдорд╛рдзрд╛рди рддрдВрддреНрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ :


!verbose 3
!include NSISList.nsh	;      *

/*
  Dump, :

!define F1 "!insertmacro _F1"
!macro _F1 [paramIn1 paramIn2 ... paramInN] [paramOut1 paramOut1 ... paramOutM]
    ${Dump}
    [Push ${paramIn1}
	Push ${paramIn2}
	...
	Push ${paramInN}]
    !ifdef __UNINSTALL__
        Call un.F1
    !else
        Call F1
    !endif
    ${Undump}
    [Pop ${paramOut1}
	Pop ${paramOut2}
	...
	Pop ${paramOutM}]
!macroend

!macro Func_F1 un
    Function ${un}F1
        ;  ...
        ;         $0-$9, $R0-$R9.
        ;        .
    FunctionEnd
!macroend
!insertmacro Func_F1 ""
!insertmacro Func_F1 "un."

*/

/**   Dump */
!define InitDump "!insertmacro _InitDump"
!macro _InitDump
    !ifdef __UNINSTALL__
        Call un.InitDump
    !else
        Call InitDump
    !endif
!macroend

!macro Func_InitDump un
    Function ${un}InitDump
        #  $0-$9
        ${List.Create} d0
        ${List.Create} d1
        ${List.Create} d2
        ${List.Create} d3
        ${List.Create} d4
        ${List.Create} d5
        ${List.Create} d6
        ${List.Create} d7
        ${List.Create} d8
        ${List.Create} d9
        #  $R0-$R10
        ${List.Create} dR0
        ${List.Create} dR1
        ${List.Create} dR2
        ${List.Create} dR3
        ${List.Create} dR4
        ${List.Create} dR5
        ${List.Create} dR6
        ${List.Create} dR7
        ${List.Create} dR8
        ${List.Create} dR9
    FunctionEnd
!macroend
!insertmacro Func_InitDump ""
!insertmacro Func_InitDump "un."


/**     nsis-  Dump */
!define Dump "!insertmacro _Dump"
!macro _Dump
    !ifdef __UNINSTALL__
        Call un.Dump
    !else
        Call Dump
    !endif
!macroend

!macro Func_Dump un
    Function ${un}Dump
        # $0-$9
        ${List.Add} d0 $0
        ${List.Add} d1 $1
        ${List.Add} d2 $2
        ${List.Add} d3 $3
        ${List.Add} d4 $4
        ${List.Add} d5 $5
        ${List.Add} d6 $6
        ${List.Add} d7 $7
        ${List.Add} d8 $8
        ${List.Add} d9 $9
        # R0-R9
        ${List.Add} dR0 $R0
        ${List.Add} dR1 $R1
        ${List.Add} dR2 $R2
        ${List.Add} dR3 $R3
        ${List.Add} dR4 $R4
        ${List.Add} dR5 $R5
        ${List.Add} dR6 $R6
        ${List.Add} dR7 $R7
        ${List.Add} dR8 $R8
        ${List.Add} dR9 $R9
    FunctionEnd
!macroend
!insertmacro Func_Dump ""
!insertmacro Func_Dump "un."


/**     nsis-  Dump */
!define Undump "!insertmacro _Undump"
!macro _Undump
    !ifdef __UNINSTALL__
        Call un.Undump
    !else
        Call Undump
    !endif
!macroend

!macro Func_Undump un
    Function ${un}Undump
        # $0-$9
        ${List.Pop} $0 d0
        ${List.Pop} $1 d1
        ${List.Pop} $2 d2
        ${List.Pop} $3 d3
        ${List.Pop} $4 d4
        ${List.Pop} $5 d5
        ${List.Pop} $6 d6
        ${List.Pop} $7 d7
        ${List.Pop} $8 d8
        ${List.Pop} $9 d9
        # R0-R9
        ${List.Pop} $R0 dR0
        ${List.Pop} $R1 dR1
        ${List.Pop} $R2 dR2
        ${List.Pop} $R3 dR3
        ${List.Pop} $R4 dR4
        ${List.Pop} $R5 dR5
        ${List.Pop} $R6 dR6
        ${List.Pop} $R7 dR7
        ${List.Pop} $R8 dR8
        ${List.Pop} $R9 dR9
    FunctionEnd
!macroend
!insertmacro Func_Undump ""
!insertmacro Func_Undump "un."

рдФрд░ рддреАрд╕рд░рд╛ рдЪрд░рдг рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╡рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдкрд┐рдЫрд▓реЗ рдореБрдЦреНрдп рдХреЛрдб рдЯрд┐рдкреНрдкрдгреА рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдирд┐рдпрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ $ 0- $ 9, $ R0 - $ R9 рдХреЛ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЦрддрд░реЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП - рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рд╕реЗред

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

  1. рдПрдл 1 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реАрдзреЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ,
    Call F1
    рдФрд░ рдореИрдХреНрд░реЛ рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
    ${F1} [paramIn1 [paramIn2]...[paramInN]] [paramOut1 [paramOut2]...[paramOutM]]
  2. рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рднреА рдЗрд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
    ${Dump}
    рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдбрдВрдк рдореЗрдВ рдЪрд░ $ 0- $ 9, $ R0- $ R9 рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реБрдб рдХреЗ рддрд╣рдд рдЙрд╕рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реВрдЪрд┐рдпрд╛рдВ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЙрд╕рдХреЗ рд▓рдХреНрд╖реНрдп рдЪрд░ рд╕реЗ рдмрд╛рдВрдзрд╛ рдЧрдпрд╛ рд╣реИ;
  3. рд╕реНрдЯреИрдХ рдкрд░ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓рдХреНрд╖реНрдп рдЪрд░
    Push ${paramIn1} Push ${paramIn2} ... Push ${paramInN}
    (рдпрджрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ);
  4. рд╕рдорд╛рд░реЛрд╣ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛;
  5. рдлрд╝рдВрдХреНрд╢рди рдЕрдкрдиреЗ рддрд░реНрдХ рдФрд░ рдирд┐рдХрд╛рд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛;
  6. рдкреБрдХрд╛рд░ рд╣реЛрдЧреА
    ${Undump}
    рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, $ {Dump} рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
  7. рд╕реНрдЯреИрдХ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рдХреЛ рд▓реЛрдб рдХрд░рдирд╛
    Pop ${paramOut1} Pop ${paramOut2} ... Pop ${paramOutM}
    (рдпрджрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ);
  8. рдПрдл 1 рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдореИрдХреНрд░реЛ рдЖрд╡рд░рдг рдЕрдкрдиреЗ рдХрд╛рдо рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдирддреАрдЬрддрди, рд╣рдореЗрдВ nsis рдХреЛрдб рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдорд┐рд▓рд╛ред

рдЖрдк рдпрд╣ рднреА рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЦрдирди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рд▓рдЧрднрдЧ 30 рдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рдзреАрдорд╛ред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ :)

рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/undefined/


All Articles