Différence entre DLL et LIB

DLL vs LIB

Une bibliothèque est un ensemble de ressources pouvant être utilisées pour développer des applications. Une bibliothèque est généralement composée de sous-routines, fonctions, classes, valeurs et types. Pendant le processus de liaison (généralement effectué par un éditeur de liens), les bibliothèques et les exécutables 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-routines sont chargées dans 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..

Quelle est la DLL?

Dynamic Link Library (plus communément appelée DLL) est une implémentation de bibliothèque partagée développée par Microsoft. Il utilise les extensions .dll, .ocx ou .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 classiques. 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 de pilote système hérités. Le format de fichier DLL est identique à celui des fichiers EXE Windows (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 des fichiers DLL (comme dans les fichiers EXE). En réalité, les fichiers de données au format de fichier DLL sont appelés DLL de ressources. Les bibliothèques d'icônes (avec l'extension .icl) et les fichiers de polices (avec les extensions .fon et .fot) sont des exemples de DLL de ressources..

Les composants appelés sections constituent une DLL et chaque section a ses propres attributs tels que lecture seule / écriture 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 disposera de sa propre copie des données. La bibliothèque dynamique principale pour Windows est kernel32.dll, qui contient les fonctions de base (fonctionnalité relative aux fichiers et à la mémoire) sous Windows. COM (Component Object Model) est l'extension de DLL vers OOP (Programmation Orientée Objet). Les DLL conventionnelles sont plus faciles à utiliser que les fichiers COM.

Qu'est-ce que la lib?

Les fichiers LIB sont des bibliothèques statiques (également appelées bibliothèques liées statiquement). Les fichiers LIB contiennent une collection de sous-routines, de fonctions externes et de variables. Les fichiers LIB sont résolus au moment de la compilation (par opposition à l'exécution). Le code est effectivement copié dans l'application cible. Un compilateur, un éditeur de liens ou un classeur effectuera cette résolution et produira un fichier objet et un fichier exécutable. Ce processus s'appelle processus de construction statique.

Quelle est la difference entre DLL et LIB?

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