SUPINFO International University

SUPINFO Institute of Information Technology
Laboratoire Microsoft




Tous les Articles du Laboratoire Microsoft

Microsoft vous invite au concert d'Alanis Morissette !
Accueil > Articles > Actualité
Auteurs 
Yann ALET
LABORATOIRE SUPINFO DES TECHNOLOGIES MICROSOFT
Formateur


 Tous les articles de cet auteur

3,1/5

Assez Bien


59222
69/218

Première approche

Qu'est-ce qu'une Dll ?

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.


Structure d'une Dll

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...


Get set...

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


En Savoir Plus 
Evaluez cet article 


Pour afficher ou poster un commentaire, cliquez sur ce lien : Forum-Microsoft



Retrouvez ci-dessous les autres sections du Laboratoire Microsoft