Différence entre DLL et LIB

Différence entre DLL et LIB

Dll vs lib

Une bibliothèque est une collection de ressources qui peuvent être utilisées pour développer des applications. Une bibliothèque est généralement composée de sous-programmes, fonctions, classes, valeurs et types. Pendant le processus de liaison (généralement effectué par un linker), les bibliothèques et les exécutables se font référence les uns aux autres. Les fichiers de bibliothèque sont divisés en bibliothèques statiques et dynamiques en fonction de l'heure à laquelle les sous-programmes sont chargés de l'application cible. En conséquence, les fichiers LIB sont des bibliothèques liées statiquement et les fichiers DLL sont des bibliothèques liées dynamiquement.

Qu'est-ce que la DLL?

La bibliothèque de liens dynamiques (plus communément connue sous le nom de DLL) est une implémentation de bibliothèque partagée développée par Microsoft. Il utilise le .dll, .OCX ou .Extensions DRV et elles sont utilisées dans les systèmes d'exploitation Microsoft Windows et OS / 2… la DLL est utilisée par les fichiers DLL réguliers. Et .L'extension OCX est utilisée par les bibliothèques contenant des contrôles ActiveX et .L'extension DRV est utilisée par les fichiers du pilote du système hérité. Le format de fichier DLL est le même que les fichiers Windows EXE (fichiers exécutables portables sous Windows 32 bits / 64 bits, et nouvel exécutable sous Windows 16 bits). Par conséquent, toute combinaison de code, de données et de ressources peut être contenue dans les fichiers DLL (comme dans les fichiers EXE). En tant que mater de fait, les fichiers de données avec le format de fichier DLL sont appelés DLL Resource. Bibliothèques d'icônes (avec .Extension ICL) et fichiers de police (avec .Fon et .extensions fot) sont des exemples de DLL de ressources.

Les composants appelés sections constituent une DLL et chaque section a ses propres attributs comme en lecture seule / scénarisable et exécutable / non exécutable. Les sections de code sont exécutables, tandis que les sections de données ne sont pas exécutables. Les sections de code sont partagées et les sections de données sont privées. Cela signifie que tous les processus utilisant la DLL utiliseront la même copie du code, tandis que chaque processus aura sa propre copie des données. La bibliothèque dynamique principale pour Windows est Kernel32.DLL, qui contient les fonctions de base (fonctionnalité liée au fichier et à la mémoire) sur Windows. Com (Modèle d'objet composant) est l'extension de DLL à OOP (programmation orientée objet). Les DLL conventionnelles sont plus faciles à utiliser que les fichiers com.

Qu'est-ce que Lib?

Les fichiers lib sont des bibliothèques statiques (également connues sous le nom de bibliothèques liées statiquement). Les fichiers lib contiennent une collection de sous-programmes, de fonctions externes et de variables. Les fichiers LIB sont résolus au temps de compilation (par opposition à l'exécution). Le code est réellement copié dans l'application cible. Un compilateur, un linker ou un liant fera cette résolution et produira un fichier d'objet et un fichier exécutable. Ce processus est appelé processus de construction statique.

Quelle est la différence entre DLL et Lib?

Les bibliothèques Lib peuvent être appelées pendant la compilation, mais les bibliothèques DLL ne peuvent être appelées que pendant l'exécution. Les fichiers lib sont nettement plus importants que les fichiers DLL. Un problème très courant avec les fichiers DLL est le problème du versioning. Cela se produit lorsque le code de la DLL est modifié et que l'application utilise une mauvaise version d'une DLL. Ce n'est pas un problème associé aux fichiers lib. En termes de réutilisabilité, lors de l'écriture de nouvelles versions de systèmes ou de nouvelles applications, les DLL sont toujours meilleures que les LIB.