最新消息:

宏使用方法(!macro和!insertmacro)

nsis 永恒心锁 1816浏览 0评论

【案例一】

 OutFile "test_maroc.exe"
 !macro add a b c ;一个实现(a+b)*(a-b)的宏
 IntOp $R0 ${a} - ${b}
 IntOp $R1 ${a} + ${b}
 IntOp ${c} $R0 * $R1
 !macroend
 /*
 注意:!macro和!insertmacro用法:
 !macro add a b c            ;!macro 宏名 参数一 参数二 参数三 ...
 !insertmacro add 10 20 $0   ;!insertmacro 宏名 参数一 参数二 参数三 ...
 使用的时候!insertmacro的参数会代入!macro里面使用
 就是如!insertmacro add 10 20 $0
 代入!macro add a b c
 .那么在!macro add里面等效于执行了
 IntOp $R0 10 - 20
 IntOp $R1 10 + 20
 IntOp $0 $R0 * $R1
 */
 Section
 !insertmacro add 10 20 $0   ;调用宏
 DetailPrint '$0'
 SectionEnd

【案例二】

;删除指定名称的进程
 !macro KILLPROCESS FILENAME
 ${For} $R1 0 2
 FindProcDLL::FindProc ${FILENAME}
 IntCmp $R0 1 _ISEXISTED _ISNOTEXISTED
 _ISEXISTED:
 KillProcDLL::KillProc ${FILENAME}
 IntCmp $R0 0 _IS0 _LESSTHAN0 _MORETHAN0
 _IS0:
 Goto _END_OF_KILL_ZHEZI
 _LESSTHAN0:
 _MORETHAN0:
 ${Next}
 _ISNOTEXISTED:
 _END_OF_KILL_ZHEZI:
 !macroend
永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » 宏使用方法(!macro和!insertmacro)

您必须 登录 才能发表评论!