LIB vs DLL
Bij het ontwikkelen van software wordt ons vaak gevraagd of we LIB of DLL's willen gebruiken om functies voor de toepassing te bevatten. LIB is een statische bibliotheek waarin functies en procedures kunnen worden geplaatst en aangeroepen terwijl de toepassing wordt gecompileerd. Een DLL- of Dynamic Link-bibliotheek doet dezelfde functie, maar is dynamisch in die zin dat de toepassing deze bibliotheken kan oproepen tijdens runtime en niet tijdens de compilatie. Dit biedt enkele belangrijke voordelen in vergelijking met het gebruik van LIB.
Om te beginnen zou u een enkel bestand hebben dat aanzienlijk groter is omdat het alle code bevat terwijl u meerdere kleinere bestanden zou hebben wanneer u DLL gebruikt. Het compileren van uw functies en procedures zou u ook meer herbruikbaarheid bieden als u eenmaal tevreden bent met de functies van het DLL-bestand, omdat u het kunt houden zoals het is met elke versie van de toepassing en er niet mee hoeft te rotzooien. U kunt dezelfde DLL ook gebruiken als u een andere toepassing wilt maken die dezelfde functies en procedures gebruikt. U kunt rechtstreeks naar de DLL linken in plaats van de code van de bron te kopiëren, zoals u met LIB zou moeten doen.
Een probleem met DLL is wanneer u de inhoud van het DLL-bestand wijzigt. Dit kan leiden tot versieproblemen waarbij een toepassing de onjuiste versie van het DLL-bestand gebruikt en problemen veroorzaakt. U moet uw DLL's bijhouden om deze problemen te voorkomen. Je zou dit probleem met LIB niet hebben, omdat je maar één groot bestand zou krijgen.
Bij het ontwikkelen van de software en het kiezen van DLL, zou u nog steeds een LIB-bestand in uw project hebben. Maar anders dan bij het gebruik van LIB, bevat dit bestand niet de code van de functies en procedures, maar alleen de stubs die het programma nodig heeft om de procedures van de DLL's aan te roepen.
Samenvatting:
1. Een DLL is een bibliotheek die functies bevat die door applicaties kunnen worden opgeroepen tijdens runtime, terwijl LIB een statische bibliotheek is waarvan de code tijdens de compilatie moet worden opgeroepen
2. Het gebruik van LIB zou resulteren in een enkel bestand dat aanzienlijk groter is, terwijl u met meerdere kleinere bestanden met DLL's eindigt
3. DLL's zijn meer herbruikbaar dan LIB's bij het schrijven van nieuwe versies of totaal nieuwe applicaties
4. DLL-bestanden kunnen door andere toepassingen worden gebruikt, terwijl LIB-bestanden dit niet kunnen
5. DLL's zijn gevoelig voor versieproblemen, terwijl LIB dat niet is
6. U zou nog steeds een LIB-bestand hebben bij het ontwikkelen van software met DLL's, maar het bevat alleen stubs