0

NSIS 真正让我烦恼的是为什么有两种不同的做事方式?

  1. 为什么有两种执行条件语句/逻辑的方法。即,使用'$if' 还是使用'StrCmp'?
  2. 为什么能够以多种不同的方式存储变量。即,使用 '$myvar' 或使用 'var myVar' 我认为还有更多
  3. 为什么要有程序集来访问存储变量?为什么不直接使用上述方法
  4. 为什么你可以同时使用';'来创建评论 或者 '#'

你能推荐一个记录所有全局变量的链接吗?比如 $INSTDIR 等?

4

2 回答 2

2

您显然还没有完全了解 NSIS 的工作原理。

  1. ${If}而所有这些东西都来自LogicLib,它是在NSIS标准库存在很长时间后才被添加到的。以前,您必须使用StrCmp,IntCmp或其中一个跳转运算符。${If} a == b只是语法糖StrCmp,所有标签都得到了照顾。它产生更多可维护的代码。

  2. Var foo是变量声明$foo正在访问变量。因此,它们是完全不同的东西。你不能在没有$foo指定的情况下使用Var foo

  3. 我不知道你这是什么意思。

  4. 有关系吗?

  5. 看说明书。这一切都在眼前。试试变量部分。

于 2012-05-03T01:43:51.863 回答
0

保留变量的列表可在文档中找到。可写变量在 4.2.2 节,常量在 4.2.3 节。

http://nsis.sourceforge.net/Docs/Chapter4.html#4.2.2

于 2012-05-03T01:44:01.447 回答