|
Tous les Articles du Laboratoire Microsoft
Première approche
|
|
|
Mais au fait, qu'est-ce qu'une Dll me direz-vous ? C'est très simple... Dll signifie "Dynamic-Link Library"
(bibliothèque liée dynamiquement) ; il s'agit d'une librairie (fichier contenant plusieurs fonctions d'un
programme) compilée, donc prête à être utilisée, chargée dynamiquement lors du démarrage d'un programme...
En français, cela signifie que votre librairie ne sera pas compilée en même temps que votre programme qui
l'utilise, mais aura été compilée auparavant, et sera chargée dynamiquement en mémoire lorsque le programme
le désirera. Une librairie dynamique est indépendante du(des) programmes qui l'utilise(nt) et peut-être utilisée
par plusieurs programmes en même temps. Elle ne sera stockée qu'une seule fois sur le disque dur. Elle permet
aux développeurs de distribuer des fonctions réutilisables par tout programme, sans en dévoiler les sources.
On retrouve le principe des librairies dynamiques sous Unix sous l'extension .so.
|
|
|
|
|
|
Mais comment cela fonctionne-t-il ?
La Dll contient du code exécutable, qui est appelé par un programme externe... Ce programme externe devra donc
connaître toutes les fonctions disponibles au sein de la Dll... C'est pour ceci que la Dll contient une table
d'exportation de symboles (Symbols Export Table) : cette table liste toutes les fonctions exportées (donc disponibles
par un programme externe) ainsi que leur point d'entrée (adresse du début du code de la fonction). Nous aurons à
créer cette table d'exportation, mais pas de panique, ceci se fait de manière très simple sous Visual C++.
Il va falloir visualiser notre table d'exportation, après avoir créé la Dll... Pour ceci, un outil est très
utile, il s'agit de Jasc Quick View Plus... Il va permettre de lister toutes les fonctions exportées (et même
importées) par notre Dll, ainsi que leur point d'entrée... Nous l'utiliserons par la suite pour voir si notre
Dll a correctement été compilée. Vous pouvez télécharger une version de démonstration de Quick View Plus à
l'adresse : http://www.jasc.com/product.asp?pf_id=006
Ceci dit, nous allons pouvoir attaquer le développement proprement dit...
|
|
|
|
|
|
Les préparatifs pour la grande aventure : démarrez Visual C++, créez un nouveau projet / Win32 Dynamic Link Library.
Choisissez "a simple Dll project". Nommez votre projet, par exemple Dll_fichier.cpp. Cliquez sur "Finish".
Vous remarquez que certains fichiers ont déjà été créés :
- Un fichier source contenant déjà une fonction (nous y reviendrons).
- Un autre fichier et son header correspondant : Stdafx. Ces fichiers permettent d'accéder à l'API Windows.
|
Sommaire
1 - Introduction
2 - Dlls for dummies
3 - Première approche
4 - Un exemple concret
5 - Un peu plus loin...
6 - Conclusion
|
|
 |
Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft
|
|
|
 |