DLL fait référence à une bibliothèque de liens dynamiques, un fichier exécutable qui permet aux programmes de partager du code et d'autres ressources nécessaires pour effectuer des tâches spéciales. Sous Windows, de nombreuses applications ne constituent pas un fichier exécutable complet. Elles sont divisées en bibliothèques de liens dynamiques relativement indépendantes, c'est-à-dire des fichiers DLL, qui sont placés dans le système. Une application peut avoir plusieurs fichiers DLL et un fichier DLL peut être partagé par plusieurs applications. Ces fichiers DLL sont appelés fichiers DLL partagés.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.
DLL est l'abréviation de Dynamic Link Library, qui signifie bibliothèque de liens dynamiques, et certaines personnes l'appellent extension d'application ; c'est un fichier exécutable qui permet aux programmes de partager le code et d'autres ressources nécessaires pour effectuer des tâches spéciales.
Sous Windows, de nombreuses applications ne constituent pas un fichier exécutable complet. Elles sont divisées en bibliothèques de liens dynamiques relativement indépendantes, c'est-à-dire des fichiers DLL, qui sont placés dans le système. Lorsque nous exécutons un programme, le fichier DLL correspondant sera appelé. Une application peut avoir plusieurs fichiers DLL et un fichier DLL peut être partagé par plusieurs applications. Ces fichiers DLL sont appelés fichiers DLL partagés.
Les fichiers DLL permettent aux programmes de partager du code et d'autres ressources nécessaires pour effectuer des tâches spéciales. Les applications plus volumineuses sont composées de nombreux modules. Ces modules remplissent des fonctions relativement indépendantes. Ils coopèrent les uns avec les autres pour compléter le travail de l'ensemble du système logiciel. Il peut y avoir certains modules dont les fonctions sont plus générales et seront toujours utilisés lors de la construction d'autres systèmes logiciels. Lors de la construction d'un système logiciel, si le code source de tous les modules est compilé de manière statique dans l'ensemble du fichier EXE de l'application, certains problèmes surgiront : Un inconvénient est que cela augmente la taille de l'application, ce qui occupe plus d'espace disque et le programme s'exécute. Cela consommera également une grande quantité d'espace mémoire, entraînant un gaspillage de ressources système ; un autre inconvénient est que lors de l'écriture d'un programme EXE volumineux, tous les codes sources doivent être ajustés et compilés à chaque fois qu'il est modifié et reconstruit, ce qui augmente la complexité de le processus de compilation, qui n'est pas non plus propice aux tests unitaires par étapes.
La plate-forme système Windows offre un environnement de programmation et d'exécution complètement différent et plus efficace. Vous pouvez créer des modules de programme indépendants sous forme de fichiers DLL plus petits, puis les compiler et les tester séparément. Au moment de l'exécution, le système chargera ces modules DLL dans l'espace mémoire uniquement si le programme EXE souhaite réellement les appeler. Cette approche réduit non seulement la taille du fichier EXE et les besoins en espace mémoire, mais permet également à ces modules DLL d'être utilisés par plusieurs applications en même temps. Windows lui-même implémente certaines fonctions système majeures sous la forme de modules DLL.
De manière générale, une DLL est un fichier disque. Les fichiers système avec .dll, .DRV, .FON, .SYS et de nombreuses extensions .EXE peuvent être des DLL. Il se compose de données globales, de fonctions de service et de ressources. Il est chargé dans l'espace virtuel du processus appelant par le système au moment de l'exécution et devient partie intégrante du processus appelant. S'il n'y a pas de conflits avec d'autres DLL, le fichier est généralement mappé à la même adresse dans l'espace virtuel du processus. Le module DLL contient diverses fonctions exportées pour fournir des services au monde extérieur. Une DLL peut avoir son propre segment de données, mais n'a pas sa propre pile, et utilise le même mode de pile que l'application qui l'appelle ; une DLL n'a qu'une seule instance en mémoire ; la DLL implémente l'encapsulation du code ; La DLL est liée au langage de programmation spécifique. Elle n'a rien à voir avec le compilateur.
Dans un environnement Win32, chaque processus copie ses propres variables globales en lecture/écriture. Si vous souhaitez partager de la mémoire avec d'autres processus, vous devez utiliser un fichier mappé en mémoire ou déclarer un segment de données partagé. La mémoire de pile requise par les modules DLL est allouée à partir de la pile du processus en cours d'exécution. Windows fait correspondre les appels de fonction de processus aux fonctions exportées du fichier DLL lorsqu'il charge un module DLL. Le fonctionnement du système d'exploitation Windows sur la DLL consiste uniquement à mapper la DLL dans l'espace d'adressage virtuel du processus qui en a besoin. Tous les objets (y compris les variables) créés par le code dans une fonction DLL appartiennent au thread ou au processus qui l'appelle.
Avantages de la DLL
Lorsqu'un programme utilise une DLL, il présente les avantages suivants : Utilise moins de ressources Lorsque plusieurs programmes utilisent la même bibliothèque de fonctions, la DLL peut réduire la quantité de duplication de code chargé sur le disque et la mémoire physique. Cela peut grandement affecter non seulement les programmes exécutés au premier plan, mais également d'autres programmes exécutés sur le système d'exploitation Windows. Promouvoir l'architecture modulaire Les DLL peuvent contribuer à promouvoir le développement de programmes modulaires. Cela peut vous aider à développer des programmes volumineux nécessitant plusieurs versions linguistiques ou des programmes nécessitant une architecture modulaire. Un exemple de programme modulaire est un programme de comptabilité doté de plusieurs modules pouvant être chargés dynamiquement au moment de l'exécution. Déploiement et installation simplifiés Lorsque les fonctions d'une DLL doivent être mises à jour ou réparées, le déploiement et l'installation d'une DLL ne nécessitent pas de rétablir le lien du programme vers la DLL. De plus, si plusieurs programmes utilisent la même DLL, plusieurs programmes bénéficieront de la mise à jour ou du correctif. Ce problème peut se produire plus fréquemment lorsque vous utilisez des DLL tierces régulièrement mises à jour ou corrigées.
Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!