在现在项目中,应用到NSIS打包. 因此对NSIS脚本,做了简单了解. 记录一下备忘.
添加一个 带 返回值的函数.
Function simpleTest
MessageBox MB_OKCANCEL|MB_ICONQUESTION \
"点击确定取消"\
/SD IDOK \
IDOK ok \
IDCANCEL cancel
ok:
Push "OK"
Goto +2
cancel:
Push "CANCEL"
FunctionEnd
测试,在.oninit中调用如下:
Function .onInit
Call simpleTest
Pop $0
${If} $0 == "CANCEL"
MessageBox MB_OK|MB_ICONEXCLAMATION "点击的是取消"
${Else}
MessageBox MB_OK|MB_ICONEXCLAMATION "点击的是确定"
${EndIf}
FunctionEnd
可以看到 函数的返回值 是手动push到 栈中,在外部在手动pop出来. 类似函数传参,也是手动push.在函数内pop出来.