Vous êtes sur la page 1sur 10

Tutoriel de cration et dutilisation dune bibliothque

dynamique (dll)

Cette procdure dmontre comment on cre une bibliothque dynamique (Dynamic Link Library ou DLL)
contenant des classes utiles pour dautres applications ou programmes.
Lutilisation de DLL savre importante pour la rutilisation du code, puisquelle permet la mise en
commun efficace de bibliothques de fonctions dans plusieurs applications.

En utilisant Visual C++ (Microsoft Visual Studio .Net 2005, version franaise), ce tutoriel couvre les sujets
suivants:
Cration dune solution et dun nouveau projet contenant une bibliothque dynamique
Ajout dune classe (fichiers .h et .cpp) dans la bibliothque.
Cration dune application console (fichier .cpp) faisant rfrence la bibliothque dynamique.
Utilisation des classes et fonctions de la bibliothque par lapplication console.
Excution de lapplication console comme projet de dmarrage.

Requis de lapplication :
Notions de base du langage C++.

Cration dune solution et dun nouveau projet de bibliothque dynamique

1. Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet


2. A partir du volet Types de projets, sous le nud Visual C++, slectionner Win32.
3. Dans le volet Modles, slectionner Projet Win32.
4. Choisissez un nom de projet (ModuleDLL) et entrez-le dans le champ Nom. Choisissez le
rpertoire de votre projet dans le champ Emplacement en utilisant Parcourir. Choisissez un
nom pour la solution en remplissant le champ Nom de solution (TutorielDLL).
5. Cliquez sur OK afin de dmarrer lAssistant Application Win32. Cliquez sur Suivant pour aller
dans Paramtres de lapplication. Sous Type dapplication, slectionner DLL. Sous le volet
Options supplmentaires, slectionnez Projet vide.

6. Cliquez sur Terminer pour crer le projet.

Ajout dune classe dans la bibliothque dynamique :


1. Afin de crer un fichier den-tte pour la nouvelle classe, dans le menu Projet, slectionner
Ajouter un nouvel lment. Une boite de dialogue saffiche. Sous le volet Catgories,
slectionner Code sous le nud Visual C++. Dans le volet Modles Visual Studio installs
Cliquez sur Fichier den-tte (.h). Choisissez un nom pour le fichier den-tte
(ClasseDynamique.h) dans le champ Nom puis cliquez sur Ajouter. Un fichier vide sera affich
2. Ajouter une classe simple ClasseDynamique.h. :

// ClasseDynamique.h

#ifndef __HEADER__CLASSE_DYNAMIQUE__
#define __HEADER__CLASSE_DYNAMIQUE__

#include <string>
#include <iostream>

class ClasseDynamique
{
public:
__declspec(dllexport) ClasseDynamique(std::string);
__declspec(dllexport) ~ClasseDynamique( void );

__declspec(dllexport) size_t getLength( void ) const;


friend __declspec(dllexport) std::ostream& operator <<(
std::ostream&, const ClasseDynamique& );

private:
std::string chaine_;
};

#endif

3. Dans les dclarations des mthodes, constructeur et destructeur de la classe ClasseDynamique, on


remarque lajout obligatoire du modificateur __declspec(dllexport) pour permettre la DLL
dexporter ces mthodes afin quelles puissent tre utilises par dautres programmes ou
applications.
4. Afin de crer un fichier source pour la nouvelle classe, dans le menu Projet, slectionner Ajouter
un nouvel lment. Une boite de dialogue saffiche. Sous le volet Catgories, slectionner
Code sous le nud Visual C++. Dans le volet Modles Visual Studio installs Cliquez sur
Fichier C++ (.cpp). Choisissez un nom pour le fichier den-tte (ClasseDynamique.cpp) dans le
champ Nom puis cliquez sur Ajouter. Un fichier vide sera affich

5. Implmenter les fonctionnalits de la classe ClasseDynamique dans le fichier source. Le code


doit tre comme suit :
#include "ClasseDynamique.h"

ClasseDynamique::ClasseDynamique( std::string chaine )


: chaine_( chaine )
{
}

ClasseDynamique::~ClasseDynamique( void )
{
}

size_t ClasseDynamique::getLength( void ) const


{
return chaine_.size();
}

std::ostream& operator<<( std::ostream& o, const ClasseDynamique&


classeDynamique )
{
return o << classeDynamique.chaine_ << "( "
<< classeDynamique.getLength() << " )" << std::endl;
}

6. Dans le menu Gnrer cliquez sur Gnrer la solution afin de compiler la bibliothque de liens
dynamiques. Cela va crer une DLL qui peut tre utilis par dautres applications ou programmes.
Cration dune application console en faisant la rfrence la bibliothque dynamique

1. Afin de crer une application principale qui va utiliser les fonctionnalits de la bibliothque,
slectionner Nouveau dans le menu Fichier, puis cliquez sur Projet.
2. A partir du volet Types de projets, sous le nud Visual C++, slectionner Win32.
3. Dans le volet Modles, slectionner Application console Win32.
4. Choisissez un nom de projet (Tutoriel) et entrez-le dans le champ Nom. Choisissez le rpertoire
de votre projet dans le champ Emplacement (ce rpertoire peut tre le mme que pour le projet de
la bibliothque) en utilisant Parcourir. Choisissez dajouter le nouveau projet dans la solution :
Ajouter la solution.

5. Cliquez sur OK afin de dmarrer lAssistant Application Win32. Cliquez sur Suivant pour aller
dans Paramtres de lapplication. Sous Type dapplication, slectionner Application console.
Sous le volet Options supplmentaires, slectionnez Projet vide.
.
6. Cliquez sur Terminer pour crer le projet.

Utilisation des fonctionnalits de la bibliothque par lapplication console.

1. On vient de crer un projet vide Tutoriel. Crer un fichier source dont le nom sera identique au
nom du projet qui vient dtre cre Tutoriel.cpp.
2. afin de crer un fichier source pour le nouveau projet, dans le menu Projet, slectionner Ajouter
un nouvel lment. Une boite de dialogue saffiche. Sous le volet Catgories, slectionner
Code sous le nud Visual C++. Dans le volet Modles Visual Studio installs Cliquez sur
Fichier C++ (.cpp). Choisissez un nom pour le fichier (Tutoriel.cpp) dans le champ Nom puis
cliquez sur Ajouter. Un fichier vide sera affich
3. Implmenter les fonctionnalits du fichier source Tutoriel.cpp. Le code doit tre comme suit :

#include "ClasseDynamique.h"

int main( int argc, char** argv )


{
ClasseDynamique classeDynamique( "Bonjour le monde !" );
std::cout << classeDynamique << endl;
}

4. Afin dutiliser les mthodes de la classe cre dans la bibliothque dynamique, on devra rfrencer
celle-ci. Slectionner Proprits dans le menu contextuel associ au projet Tutoriel.
Dans la boite de dialogue Page de proprits de Tutoriel, slectionner Rfrences sous le nud
Proprits communes, par la suite cliquez sur le bouton Ajouter une nouvelle rfrence.
5. La boite de dialogue Ajouter une rfrence saffiche. Cette boite contient toutes les
bibliothques quon peut rfrencer. Dans longlet Projets slectionner ModuleDLL sous le
champ Nom du projet puis cliquez sur OK.

6. Pour rfrencer les fichiers den-tte (.h) de la bibliothque de liens dynamiques, on devra
modifier le chemin daccs des rpertoires inclus. Sous le nud Proprits de configuration de
la boite de dialogue Pages de proprits de Tutoriel, dveloppez le nud C/C++ puis
slectionner Gnral. Dans le champ Autres rpertoires Include tapez le chemin daccs vers
lemplacement du fichier den-tte ClasseDynamique.h
(E:\...\cours\log2410\TutorielDLL\TutorielDLL\ModuleDLL), puis cliquez sur OK.

7. Gnrer le fichier excutable en slectionnant Gnrer la solution dans le menu Gnrer.

Excution de lapplication console comme projet de dmarrage

1. Slectionner le projet Tutoriel puis sous le menu Projet slectionner Dfinir comme projet de
dmarage.

2. Afin dexcuter le projet, slectionner xcuter sans dbogage sous le menu Dboguer. Le
rsultat doit tre comme suit :