2012-05-03 112 views
0

NSIS真的讓我很煩惱的是爲什麼有兩種不同的方式做事?NSIS有兩種方法來聲明變量和條件語句

  1. 爲什麼有兩種方式執行條件語句/邏輯。也就是說,使用'$ if'或使用'StrCmp'?
  2. 爲什麼能夠以多種不同的方式存儲變量。也就是說,使用'$ myvar'或使用'var myVar',我認爲更多
  3. 爲什麼程序集要訪問存儲變量?爲什麼不使用上述方法
  4. 爲什麼你可以使用';'來創建註釋,或'#'

你能建議一個鏈接來記錄所有的全局變量嗎?如$ INSTDIR和其他?

回答

2

你顯然不明白的NSIS如何工作的全部。

  1. ${If},所有這些東西都是從LogicLib,它被添加到NSIS標準庫它已經存在了很長一段時間後。以前,您必須使用StrCmp,IntCmp或其中一個跳轉運算符。 ${If} a == b只是在StrCmp附近的語法糖,標籤全部照顧。它產生更多可維護的代碼。

  2. Var foo是變量聲明$foo訪問的變量。因此它們是完全不同的東西。未經指定Var foo,您不能使用$foo

  3. 我不知道這是什麼意思。

  4. 重要嗎?

  5. 查看手冊。這一切都很明顯。試試Variables部分。