cs_AlexN
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
19
18 juil. 2006 à 15:19
Un utilitaire comme nsis, qui est un compilateur de script, permet grâce à son langage spécifique, de construire rapidement des installateurs logiciels multicomposants. Il compile en un seul fichier éxecutable par windows (avec des fenêtres et des clics) l'ensemble des ressources nécessaires à l'installation d'un logiciel (éxecutables, librairies, données, aide, etc.) ainsi que le script qui décrit toutes les étapes possibles de cette installation.
Pour développer un logiciel, il est préférable d'utiliser un langage évolué (Utilisation de concepts évolués comme classe, héritage, etc. pour simplifier le développement et la réutilisation du code) et compilé (gain de place mémoire, gain de temps d'éxécution, etc.).
Mais pour une procédure plus spécifique comme l'est l'installation de ce logiciel, il est beaucoup plus simple et rapide de disposer d'un langage de script limité mais efficace pour la tâche à laquelle il est dédié.
Le langage de script de nsis est restreint et orienté vers l'interface avec les fonctions les plus utilisées lors d'une installation logicielle typique, mais il est plus efficace en cela qu'il simplifie beaucoup la construction d'une interface et la mise en oeuvre d'installations avec de nombreux éléments que peut choisir ou non l'utilisateur (dans telle ou telle langue, avec ou sans composants additionnels, avec ou sans code source, etc.).
Un petit exemple :
1a) Appel d'un programme externe depuis l'api :
#include <windows.h>
int main (void) {
int ret;
STARTUPINFO si;
PROCESS_INFORMATION pProcess;
ZeroMemory (&si, sizeof(si));
si.cb = sizeof(si);
ret = CreateProcess(NULL, "notepad.exe d:\\tmp\\lismoi.txt", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pProcess);
if (ret == FALSE) perror ("CreateProcess notepad.exe d:\tmp\lismoi.txt");
return 0;
}
1b) Même appel depuis nsis :
Exec '"notepad.exe" d:\tmp\lismoi.txt'
11 lignes contre 1.
Je préfère l'option courte. L'option longue peut aussi être un luxe, quand on a le temps.