![]() |
|
Précédent | Sommaire | Suivant 4.11 DLLs des plug-insLes possibilités du langage de script NSIS peuvent être étendues en utilisant des fonctionnalités proposées par des fichiers DLL. Le meilleur exemple de cela est probablement InstallOptions.dll fourni à chaque distribution de NSIS. Lorsque le compilateur de NSIS démarre, il scanne le répertoire des plug-ins à la recherche de DLLs et génère la liste des plug-ins trouvés, ainsi que des fonctions dispoibles. Pendant la phase de compilation, si une séquence telle que fred::pierrafeu est rencontrée alors que le compilateur s'attendait à un mot clé du langage, celui-ci va regarder dans la liste. Si une entrée de cette liste spécifie que fred.dll exporte bien la fonction pierrafeu, NSIS va empaqueter le fichier fred.dll dans le code binaire de l'installation générée. Pendant l'exécution de l'installation, si une commande de plug-in est exécutée, NSIS va décompresser le fichier DLL requis dans le répertoire $TEMP, va placer sur la pile tous les arguments spécifiés (de droite à gauche), puis exécuter la fonction du plug-in. Si l'option /NOUNLOAD est spécifiée, la DLL ne sera pas déchargée lorsque l'installation se terminera et la prochaine fois que vous utiliserez une DLL sans /NOUNLOAD. Veuillez noter que le dernier appel à un plug-in de doit pas spécifier /NOUNLOAD ou bien le plug-in ne sera pas supprimé de $PLUGINSDIR, de fait que des restes seront toujours sur l'ordinateur de l'utilisateur. 4.11.1 Utilisation des plug-insUn appel de plug-in ressemble à cela : InstallOptions::dialog "emplacement_fichier_ini.ini" Tous les paramètres sont placés dans la pile (dans ce cas, la fonction plug-in ne nécessite qu'un paramètre). Certains plug-ins ne nécessitent aucun paramètre dans la pile, d'autres plusieurs. Pour utiliser une commande de plug-in, vous devrez lire la documentation du plug-in afin de connaitre les paramètres de chaque fonction. 4.11.2 Désactiver le déchargement des plug-insSi vous ne voulez pas décharger la DLL après l'appel de la fonction, utilisez /NOUNLOAD comme premier paramètre. Par exemple : dll:fonction /NOUNLOAD "param" Vous pouvez aussi utiliser SetPluginUnload alwaysoff pour éviter d'écrire /NOUNLOAD chaque fois que vous utilisez le même plug-in. 4.11.3 Appel manuel des plug-insSi vous voulez appeler un plug-in stocké sur le répertoire de l'utilisateur (ou tout autre part), utilisez CallInstDLL. Presque tous les plug-ins proposent des fonctionnalités d'installation, ainsi l'utilisation de commandes de plug-ins est bien plus simple. Utilisez CallInstDLL peut être utile lorsque vous avez créé des plug-ins liés à une certaine version de votre application et qui sont copiés dans le répertoire d'installation. Précédent | Sommaire | Suivant |
||
|