最新消息:

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

nsis 永恒心锁 2654浏览 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
免责声明:根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。丨本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途。丨本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权BY-NC-SA协议进行授权

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

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址