NSIS 真正让我烦恼的是为什么有两种不同的做事方式?
- 为什么有两种执行条件语句/逻辑的方法。即,使用'$if' 还是使用'StrCmp'?
- 为什么能够以多种不同的方式存储变量。即,使用 '$myvar' 或使用 'var myVar' 我认为还有更多
- 为什么要有程序集来访问存储变量?为什么不直接使用上述方法
- 为什么你可以同时使用';'来创建评论 或者 '#'
你能推荐一个记录所有全局变量的链接吗?比如 $INSTDIR 等?
您显然还没有完全了解 NSIS 的工作原理。
${If}
而所有这些东西都来自LogicLib,它是在NSIS标准库存在很长时间后才被添加到的。以前,您必须使用StrCmp
,IntCmp
或其中一个跳转运算符。${If} a == b
只是语法糖StrCmp
,所有标签都得到了照顾。它产生更多可维护的代码。
Var foo
是变量声明。$foo
正在访问变量。因此,它们是完全不同的东西。你不能在没有$foo
指定的情况下使用Var foo
。
我不知道你这是什么意思。
有关系吗?
看说明书。这一切都在眼前。试试变量部分。
保留变量的列表可在文档中找到。可写变量在 4.2.2 节,常量在 4.2.3 节。