C'est peut-être une question très simple, mais dans le monde actuel du développement d'applications Web, de nombreux programmeurs n'ont pas besoin de beaucoup gérer les dll, et ne se soucient donc pas de connaître leur objectif.
Alors, qu'est-ce qu'une dll?
- A quoi cela sert?
- Comment ça marche?
- Comment en créer un?
- Dans quelles situations est-il approprié d'en créer un?
On m'a dit que les DLL sont utilisées pour stocker des bibliothèques de fonctions, mais au-delà de cela, je ne sais pas grand chose. J'espère que quelqu'un ici pourra m'éclairer pour que je puisse enfin arrêter de me demander ce que font tous ces fichiers .dll dans mon répertoire Windows.
Réponses:
Une DLL est une bibliothèque de liens dynamiques. Il s'agit d'un ensemble de code et / ou de données, qui peut être utilisé par plusieurs applications (ou d'autres bibliothèques / modules).
Ainsi, par exemple, des méthodes courantes pour traiter des fichiers, travailler avec des composants d'interface graphique, etc. sont disponibles dans des bibliothèques afin que plusieurs applications puissent utiliser la même fonctionnalité. Cela réduit non seulement le besoin de créer plusieurs fois les mêmes éléments, mais garantit également que, par exemple, les dialogues communs sont les mêmes entre les applications.
Les bibliothèques peuvent être chargées au moment de l'exécution et donc partagées entre différentes applications simultanées. C'est ce qu'on appelle la liaison dynamique.
Dans certains cas, la bibliothèque peut être incluse dans l'application elle-même. C'est ce qu'on appelle la liaison statique. La liaison statique facilite le déploiement au détriment de la flexibilité car différentes applications chargeront chacune la même copie de la DLL.
Cependant, la liaison statique n'est pas toujours une option. Par exemple, vous ne pouvez pas lier statiquement une application .NET. L'utilisateur doit disposer des bibliothèques .NET pour exécuter une application .NET et les bibliothèques (ou assemblys tels qu'ils sont appelés dans .NET) sont chargées au moment de l'exécution.
Les DLL sont créées par les mêmes outils que ceux utilisés pour créer des applications. Les détails spécifiques dépendent beaucoup des outils utilisés.
la source
DLL = Bibliothèque de liens dynamiques
Le nom est en fait assez descriptif de ce qu'ils accomplissent.
Bibliothèque
Vous permet d'isoler le code d'un domaine de problème spécifique dans un emplacement unique. Partagez ensuite ceci entre plusieurs applications. La bibliothèque peut être remplacée par une autre à tout moment pour corriger des bogues ou ajouter des fonctionnalités.
Lien
Vous pouvez "Lier" la bibliothèque à une application afin que la logique de la bibliothèque ne soit pas compilée directement dans l'application.
Dynamique
La bibliothèque peut être chargée à la demande. Au lieu de charger un seul EXE gigantesque en mémoire, le système d'exploitation ne peut charger que les portions nécessaires. De plus, si une DLL est partagée entre des applications, le système d'exploitation peut optimiser la façon dont la bibliothèque est chargée et la partager entre les applications.
la source
Les fichiers DLL (bibliothèque de liens dynamiques) peuvent être décrits comme de petits «sous-programmes» destinés à aider un programme plus volumineux à bien fonctionner. Ils fournissent un moyen de relier diverses ressources matérielles et logicielles (à divers moments de ses sessions d'exécution) au programme exécutable principal sur lequel elles sont basées, sur une base "selon les besoins". Cela élimine le besoin de charger tout ce qui concerne le programme exécutable principal sur la RAM de l'ordinateur (mémoire vive) lors de la première exécution du programme.
Les ressources logicielles transportées par les DLL incluent du code pour les différentes fonctions du programme qui ne sont pas vraiment nécessaires pour maintenir le programme en cours d'exécution: c'est-à-dire des fonctions qui ne doivent être appelées qu'à certains moments au cours d'une session informatique donnée et qui pourraient même ne pas en avoir besoin. être appelé du tout. Charger ces fonctions (et il peut y en avoir un nombre considérable pour un programme donné) sur la RAM de l'ordinateur lorsque le programme est exécuté pour la première fois, puis les y maintenir tout au long de la session serait un gaspillage d'espace RAM - qui est considéré comme étant à un premium.
Une avancée majeure:
Considérations:
la source
Bibliothèque liée dynamiquement.
Pour vous donner un exemple, si la DLL de quelqu'un d'autre est chargée dans votre application, vous pouvez utiliser des morceaux de programmation à partir de celle-ci.
Vous pouvez charger une DLL qui génère des nombres aléatoires qui commencent toujours par «5» ou quelque chose.
Dans votre programme, vous pouvez appeler CrazyDLL.GenerateRandomNumbersSorta () et il renverra le numéro.
Pour un exemple du monde réel, j'ai une DLL qui combine 4 zones de texte (vous les utiliseriez pour taper des adresses IP) et elle n'accepte automatiquement que les nombres inférieurs à 256, et gère en appuyant sur la touche de retour arrière pour sauter à une zone de texte précédente.
J'ai créé une DLL avec ce code, et maintenant tout ce que j'ai à faire est de faire glisser et déposer davantage de ces collections de boîtes de texte d'adresses IP sans avoir à dupliquer tout ce code encore et encore.
La même DLL a également une fonction pour convertir les adresses IP en chaînes hexadécimales et en d'autres codes utiles.
la source
À partir de la bibliothèque MSDN :
Une bibliothèque de liens dynamiques (DLL) est un module qui contient des fonctions et des données pouvant être utilisées par un autre module (application ou DLL).
la source
DLL = Bibliothèque de liens de
chargementdynamique . Comme on vous l'a dit, il s'agit essentiellement d'une collection de fonctions, de classes C ++ et / ou de variables globales. Vous pouvez charger la DLL de manière statique (c'est-à-dire que le système d'exploitation la charge automatiquement lorsque votre programme démarre) ou dynamiquement (votre programme le charge explicitement), à quel point les fonctions et les éléments contenus dans la DLL sont disponibles pour votre programme.En créer un est similaire à la création d'un EXE, sauf qu'il n'est pas nécessaire d'avoir une
main()
fonction. Il existe des directives de l'éditeur de liens pour indiquer à l'éditeur de liens de créer une DLL plutôt qu'un EXE.La principale raison pour laquelle vous voulez faire cela est d'encapsuler du code en un seul endroit et de l'utiliser à partir de plusieurs exe, plutôt que de lier le code à chacun.
Une raison quelque peu historique est que votre exe peut être plus petit car une partie du code est physiquement située dans un fichier différent. Cela signifie que la quantité d'espace occupé en mémoire par votre exe peut être plus petite. Sur les systèmes modernes, c'est moins un problème qu'auparavant, bien que cela puisse toujours être un problème sur Windows Mobile.
la source