2012-05-02 9 views
2

NSISのスクリプトはどの言語で書かれていますか?NSISスクリプトはどの言語で書かれていますか?

NSIS独自の言語ですか、それとも共通言語ですか、それともアセンブリ自体ですか?アセンブリには非常に精通しています。私はどの言語であるかを調べるためにウェブサイトを見てきましたが、それはどの言語であるのか説明していません。

答えて

6

命令はPHPとアセンブリ間のクロス の一種です。

これはマニュアルの内容です。スクリプティング言語はNSIS独自のもので、他の言語との比較のポイントは実際にはありません。 (NSISは、基本的なWinamp plugin installerから進化し、より歴史here利用可能)

数年前LogicLibはあなたが基本的な場合にの操作を行うと、後藤さんなしでループすることができますので、「ハイ」レベルのマクロを追加しました追加されました。関数とプラグインを呼び出すには、引き続きパラメータをスタックasmスタイルにプッシュする必要があります。

言語は基本的には、命令の3種類があります。アイコンなど バージョン情報:(定義などが含まれており、マクロ)

  • Preprocessorを、彼らは!!if 1 > 0
  • Attributes /プロパティで始まります
  • Instructionsインストール/アンインストール時に実行されます(説明は機能とセクション内に配置されています)

インストーラUIは、1つまたは複数のpagesで構成されています。各ページは、いくつかのコールバック関数(Show、Leaveなど)に基づいてコードを実行できますが、ほとんどの命令はinstfilesページ(プログレスバーとログウィンドウがあるページ)で実行されます。instfilesページはすべてのセクションでコードを実行します。 A sectionは基本的に、インストーラをさまざまな部分に編成するために使用されるファイルと命令の集合です。インストーラにコンポーネントページが含まれている場合、実行するセクションを選択できるリストがユーザーに表示されます。

in the source(このリストには、外部インクルードファイルのプラグインとヘルパーマクロは含まれていません)コンパイラ(makensis.exe)は、これらの命令と(含まれている他のファイルとともに)この小規模なアプリケーションはこれらの命令を解釈します。

3

これは、アセンブラに基づいた緩やかな独自の「言語」です。

私が理解から、それはネイティブコードにこれを下にコンパイルし、インストーラが小さいので、なぜので、NSISは、スクリプトのために使用しています:)

+0

ネイティブコードにコンパイルされません... – Anders

+0

@アンダー:正しい答えを次に提供できますか? – leppie

+0

質問は言語に関するものであり、現在どのように動作しているのかという内部的なものではありませんでしたが、私は両方を説明するために最善を尽くします... – Anders