Formation création et utilisation des Dll sous Visual C++, tutoriel & guide de travaux pratiques en pdf.
Mais qu’est ce que c’est qu’une Dll ?
Une Dll est un morceau de programme incapable de fonctionner seul. Mais alors quel est l’intérêt de mettre du code dans une Dll plutôt que dans le programme principal ? – Premièrement, cela permet de ne pas se trouver avec un programme trop gros, un programme peut appeler autant de Dll qu’il en a besoin. Le programme est donc plus léger. – Le fait de diviser le programme en Dll facilite le travail en équipe, chacun peut se consacrer à une seule Dll sans s’occuper des autres. – Si une mise à jour du programme doit être effectuée, seule une seule Dll peut être modifiée, cela évite de redistribuer l’application au grand complet. – Pour finir, plusieurs applications peuvent utiliser une même Dll simultanément, cela évite de devoir écrire les fonctions contenues dans cette Dll dans tous les programmes l’utilisant.
Premier exemple
Nous allons créer ici une Dll très simple, elle contiendra une fonction servant à calculer la factorielle d’un nombre.
Dans Visual C++, choisissez New Project et Win32 Project. Choisissez ensuite Dll et laissez Empty Project et Export symbols vides.
Voici la fonction que nous voulons coder :
unsigned long int factorielle(int n) { unsigned long int resultat = 1;
if(n < 0) return -1; if(n == 0) return 1; for(; n > 0; n–) resultat *= n;
return resultat; }
Nous allons écrire notre fonction juste après
Comme ceci :
extern « C » __declspec(dllexport) indique au compilateur que la fonction pourra être appelée depuis un programme extérieur. Toutes les fonctions qui ne serviront pas uniquement à l’intérieur de la Dll doivent être précédées de ceci.
Essayez de compiler. Vous devriez obtenir un fichier .lib ainsi qu’un .dll. Gardez les, vous en aurez besoin pour le programme client.
Créez le programme client, il peut s’agir d’un simple programme Console. Ajoutez cette ligne pour que la Dll soit incluse dans le projet (les fichiers .lib et .dll doivent se trouver dans le répertoire du projet).
Ensuite, il suffit d’importer les fonctions comme ceci :
La fonction est ensuite utilisable comme une fonction « normale ».
Il suffit ensuite de distribuer le fichier .dll avec l’exécutable.