2009-09-01 3 views
3

セットアップスクリプトの最後にヘルパーDLLと関数があります。オペレーティングシステムのバージョンに応じて実行するだけです。Inno SetupスクリプトでDLLから関数を条件付きでインポートするにはどうすればよいですか?

私は、コードセクションに次の行を含める:[でDLLのソースステートメントに:私は「IsXPorHigherをチェックし、」追加抽出されるからDLLを防止する機能を書いている

function CompleteInstall(szInstallPath: String) : Integer; 
external '[email protected]:InstallHelper.dll cdecl setuponly'; 

をファイル]セクション。

セットアッププログラムが起動すると、DLLが古いOSで利用できない機能に依存しているため、外部のステートメントのために外部関数を解決しようとすると、ランタイムエラー(Can not import ...) 。

スクリプトで条件付きで関数を宣言することはできますか?それとも、旧バージョンのOSでは別のインストーラが必要ですか?私はすべてのシナリオのためのただ1つのスクリプトを維持するのに苦労しています。

答えて

4

delayloadオプションを使用してみましたか? Inno SetupのドキュメントセクションのPascal Scriptingのセクションを参照してください。

function CompleteInstall(szInstallPath: String) : Integer; 
external '[email protected]:InstallHelper.dll cdecl setuponly delayload'; 
+0

優れています。先端に感謝します。 – AlanKley

関連する問題