Nous recommandons d’utiliser Visual Studio 2017

DLL en Visual C++

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Une bibliothèque de liens dynamiques (DLL, Dynamic-Link Library) est un fichier exécutable qui sert de bibliothèque de fonctions et de ressources partagée. La liaison dynamique permet à un fichier exécutable d'appeler des fonctions ou d'utiliser des ressources stockées dans un fichier séparé. Ces fonctions et ressources peuvent être compilées et déployées séparément des exécutables qui les utilisent. Le système d'exploitation peut charger la DLL dans l'espace mémoire de l'exécutable lors du chargement de l'exécutable, ou à la demande lors de l'exécution. Les DLL facilitent également le partage des fonctions et des ressources entre les fichiers exécutables. Plusieurs applications peuvent accéder simultanément au contenu d'une copie de la DLL en mémoire.

La liaison statique copie tout le code d'objet d'un fichier .lib dans un fichier exécutable. La liaison dynamique inclut uniquement les informations nécessaires au moment de l'exécution pour localiser et charger la DLL qui contient un élément de données ou une fonction. Quand vous créez une DLL, vous créez aussi un fichier .lib qui contient ces informations. Quand vous générez un fichier exécutable qui appelle la DLL, l'éditeur de liens utilise les symboles exportés dans le fichier .lib pour stocker ces informations pour le chargeur. Quand le chargeur charge une DLL, elle est mappée dans l'espace mémoire de votre exécutable. Une fonction spéciale dans la DLL, DllMain, est appelée pour effectuer toute initialisation requise par la DLL.

Par rapport à la liaison statique, l'utilisation de la liaison dynamique offre plusieurs avantages. Quand vous utilisez des DLL, vous pouvez économiser de l'espace mémoire et réduire l'échange. Quand plusieurs applications peuvent utiliser une même copie d'une DLL, vous pouvez économiser de l'espace disque et de la bande passante. Vous pouvez déployer et mettre à jour les DLL séparément, ce qui vous permet de fournir un support après-vente et des mises à jour logicielles sans avoir à regénérer et à fournir tout votre code. Les DLL constituent un moyen pratique de fournir des ressources spécifiques aux paramètres régionaux, qui peuvent prendre en charge les programmes multilingues, et elles facilitent la création de versions internationales de vos applications.

Les rubriques suivantes fournissent des informations détaillées sur la programmation des DLL.

Procédure pas à pas : création et utilisation d'une bibliothèque de liens dynamiques (C++)
Montre comment créer et utiliser une DLL à l'aide de Visual Studio.

Différences entre les applications et les DLL
Décrit les différences fondamentales existant entre les applications et les DLL.

Avantages de l'utilisation des DLL
Décrit les avantages de la liaison dynamique.

Genres de DLL
Fournit des informations sur les différentes sortes de DLL qui peuvent être générées.

Forum Aux Questions à propos des DLL
Fournit des réponses à des questions fréquentes concernant les DLL.

Liaison d'un exécutable à une DLL
Décrit la liaison explicite et implicite à une DLL.

Initialisation d'une DLL
Traite du code d'initialisation de la DLL (comme l'allocation de mémoire) qui doit s'exécuter lors du chargement de la DLL.

Comportement de la bibliothèque Runtime
Décrit comment la bibliothèque Runtime exécute la séquence de démarrage de la DLL.

LoadLibrary et AfxLoadLibrary
Explique comment utiliser LoadLibrary et AfxLoadLibrary pour créer une liaison explicite à une DLL au moment de l'exécution.

GetProcAddress
Aborde l'utilisation de GetProcAddress pour obtenir l'adresse d'une fonction exportée dans la DLL.

FreeLibrary et AfxFreeLibrary
Traite de l'utilisation de FreeLibrary et de AfxFreeLibrary lorsque le module DLL n'est plus nécessaire.

Chemin de recherche utilisé par Windows pour retrouver une DLL
Décrit le chemin d'accès que le système d'exploitation Windows utilise pour rechercher une DLL sur le système.

États du module d'une DLL normale liée de manière dynamique aux MFC
Décrit les états du module d'une DLL normale liée de manière dynamique aux MFC.

DLL d'extension
Décrit les DLL qui implémentent généralement des classes réutilisables dérivées de classes de bibliothèque MFC existantes.

Création d'une DLL de ressource uniquement
Traite des DLL de ressource uniquement, qui ne contiennent que des ressources, telles que des icônes, des images bitmap, des chaînes et des boîtes de dialogue.

Ressources localisées dans les applications MFC : DLL satellites
Fournit une prise en charge améliorée pour les DLL satellites, une fonctionnalité qui vous aide à créer des applications localisées pour différentes langues.

Importation et exportation
Décrit l'importation de symboles publics dans une application ou l'exportation de fonctions à partir d'une DLL.

Technologie active et DLL
Autorise l'implémentation des serveurs d'objets dans une DLL.

Automation dans une DLL
Décrit ce que fournit l'option Automation de l'Assistant DLL MFC.

Conventions d'affectation de noms pour les DLL MFC
Décrit comment les DLL et les bibliothèques incluses dans les MFC obéissent aux règles d'une convention d'attribution de noms structurée.

Appel de fonctions de la DLL à partir d'applications Visual Basic
Explique comment appeler des fonctions DLL à partir d'applications Visual Basic.

Utilisation de MFC dans le cadre d'une DLL
Décrit les DLL ordinaires, qui vous permettent d'utiliser la bibliothèque MFC dans une bibliothèque de liens dynamiques Windows.

Version DLL de MFC
Explique comment utiliser les bibliothèques de liens dynamiques partagées MFCxx.dll et MFCxxD.dll (où x est le numéro de version MFC) avec les applications MFC et les DLL d'extension.

(NOTINBUILD)Visual C++ Programming Methodologies
Fournit des liens vers des rubriques qui fournissent des informations conceptuelles sur les bibliothèques Visual C++ et des rubriques qui traitent des différentes technologies et techniques de codage.

Afficher: