LIB vs DLL
Når vi udvikler software, bliver vi ofte spurgt, om vi vil bruge LIB eller DLLs til at indeholde funktioner til applikationen. LIB er et statisk bibliotek, hvor funktioner og procedurer kan placeres og kaldes, når applikationen udarbejdes. Et DLL- eller dynamisk linkbibliotek udfører den samme funktion, men er dynamisk i en forstand, at applikationen kan ringe til disse biblioteker under kørselstidspunkt og ikke under kompilering. Dette giver et par betydelige fordele sammenlignet med brugen af LIB.
Til at begynde med ville du have en enkelt fil, der er betydeligt større, da den indeholder al koden, mens du ville have flere mindre filer, når du bruger DLL. At sammensætte dine funktioner og procedurer vil også give dig mere genbrugbarhed, når du først er tilfreds med funktionerne på DLL, fordi du kan beholde det, som det er med hver version af applikationen og ikke behøver at rod med det. Du kan også bruge den samme DLL, hvis du vil oprette en anden applikation, der bruger de samme funktioner og procedurer. Du kan direkte linke til DLL snarere end at kopiere koden fra kilden, som du ville have til at gøre med LIB.
Et problem med DLL er, når du ændrer indholdet af DLL. Dette kan føre til versioneringsproblemer, hvor et program bruger den forkerte version af DLL'en, der forårsager problemer. Du skal holde styr på dine DLLs for at undgå disse problemer. Du ville ikke have dette problem med LIB, da du kun ville få en stor fil.
Når du udvikler softwaren og vælger DLL, ville du stadig have en LIB-fil i dit projekt. Men i modsætning til når man bruger LIB, indeholder denne fil ikke koden for funktionerne og procedurerne, men kun de stubber, som programmet har brug for at kalde procedurerne fra DLL’erne.
Resumé:
1. Et DLL er et bibliotek, der indeholder funktioner, der kan kaldes af applikationer under kørsel, mens LIB er et statisk bibliotek, hvis kode skal kaldes under kompilering
2. Brug af LIB ville resultere i en enkelt fil, der er betydeligt større, mens du ender med flere mindre filer med DLL'er
3. DLL'er er mere genanvendelige end LIB'er, når man skriver nye versioner eller helt nye applikationer
4. DLL-filer kan bruges af andre applikationer, mens LIB-filer ikke kan
5. DLL'er er tilbøjelige til versioneringsproblemer, mens LIB ikke er det
6. Du vil stadig have en LIB-fil, når du udvikler software med DLL'er, men den indeholder kun stubber