LIB vs DLL
Tarkvara arendamisel küsitakse meilt sageli, kas me soovime rakenduse funktsioonide sisaldamisel kasutada LIB-i või DLL-i. LIB on staatiline raamatukogu, kuhu saab funktsioone ja protseduure paigutada ning rakenduse kompileerimise ajal kutsuda. DLL või Dynamic Link Library täidab sama funktsiooni, kuid on dünaamiline selles mõttes, et rakendus saab neid raamatukogusid helistada töö ajal, mitte kompileerimise ajal. LIB-i kasutamisega võrreldes on sellel mõned olulised eelised.
Alustuseks oleks teil üks fail, mis on märkimisväärselt suurem, kuna see sisaldab kogu koodi, samas kui DLL-i kasutamisel oleks teil mitu väiksemat faili. Funktsioonide ja protseduuride kompileerimine võimaldaks teil ka suuremat korduvkasutatavust, kui olete DLL-i funktsioonidega rahul, kuna saate seda säilitada rakenduse iga versiooni puhul ja ei pea sellega segama. Sama DLL-i saate kasutada ka siis, kui soovite luua teise rakenduse, mis kasutab samu funktsioone ja protseduure. Võite otse linkida DLL-i, mitte kopeerida koodi allikast, nagu oleks vaja LIB-iga teha.
Probleem DLL-iga on siis, kui muudate DLL-i sisu. See võib põhjustada probleeme versioonimisega, kui rakendus kasutab DLL-i vale versiooni, põhjustades probleeme. Nende probleemide vältimiseks peate oma DLL-idel silma peal hoidma. LIB-iga teil seda probleemi poleks, kuna saaksite ainult ühe suure faili.
Tarkvara arendamisel ja DLL-i valimisel peaks teie projektis ikkagi olema LIB-fail. Kuid erinevalt LIB-i kasutamisest ei sisalda see fail funktsioonide ja protseduuride koodi, vaid ainult tüvesid, mida programm peab protseduuride kutsumiseks DLL-ist.
Kokkuvõte:
1. DLL on raamatukogu, mis sisaldab funktsioone, mida rakendused võivad käivitada töö ajal, samas kui LIB on staatiline raamatukogu, mille kood tuleb kompileerimise ajal kutsuda
2. LIB-i kasutamine annaks ühe faili, mis on märkimisväärselt suurem, kui lõppude lõpuks on mitu väiksemat DLL-faili
3. Uute versioonide või täiesti uute rakenduste kirjutamisel on DLL-id korduvkasutatavamad kui LIB-id
4. DLL-faile saavad kasutada muud rakendused, LIB-faile aga mitte
5. DLL-id on altid versioonimisprobleemidele, samas kui LIB pole
6. DLL-ide tarkvara arendamisel oleks teil endiselt LIB-fail, kuid see sisaldab ainult tüvesid