Ero DLL n ja LIB n välillä

DLL vs. LIB

Kirjasto on kokoelma resursseja, joita voidaan käyttää sovellusten kehittämiseen. Kirjasto koostuu yleensä aliohjelmista, toiminnoista, luokista, arvoista ja tyypeistä. Yhdistämisprosessin aikana (jonka yleensä tekee linkkeri) kirjastot ja suoritettavat tiedostot viittaavat toisiinsa. Kirjastotiedostot jaetaan staattisiksi ja dynaamisiksi kirjastoiksi sen mukaan, missä vaiheessa aliohjelmat ladataan kohdesovellukseen. Vastaavasti LIB-tiedostot ovat staattisesti linkitettyjä kirjastoja ja DLL-tiedostot ovat dynaamisesti linkitettyjä kirjastoja.

Mikä on DLL?

Dynaaminen linkkikirjasto (tunnetaan yleisemmin nimellä DLL) on Microsoftin kehittämä jaettu kirjastototeutus. Se käyttää .dll-, .ocx- tai .drv-laajennuksia, ja niitä käytetään Microsoft Windows- ja OS / 2-käyttöjärjestelmissä ... dll-ohjelmaa käyttävät tavalliset DLL-tiedostot. Ja .ocx-laajennusta käyttävät kirjastot, jotka sisältävät ActiveX-komponentit, ja .drv-tunnistetta käytetään vanhoissa järjestelmän ohjaintiedostoissa. DLL-tiedostomuoto on sama kuin Windows EXE-tiedostot (kannettavat suoritettavat tiedostot 32-bittisissä / 64-bittisissä Windowsissa ja Uusi suoritettavat tiedostot 16-bittisissä Windowsissa). Siksi mikä tahansa koodin, datan ja resurssien yhdistelmä voi sisältyä DLL-tiedostoihin (aivan kuten EXE-tiedostoihin). Tosiasiallisesti DLL-tiedostomuotoisia datatiedostoja kutsutaan resurssien DLL-tiedostoiksi. Kuvakekirjastot (.icl-laajennuksella) ja fonttitiedostot (.fon- ja .fot-tunnisteilla) ovat esimerkkejä resurssien DLL-tiedostoista.

Komponentit, joita kutsutaan osioiksi, muodostavat DLL: n ja jokaisella osiolla on omat määritteensä, kuten vain luku / kirjoitettava ja suoritettava / ei suoritettava. Koodiosat ovat suoritettavia, kun taas tietoosat eivät ole suoritettavia. Koodiosat ovat jaettuja ja tietoosat ovat yksityisiä. Tämä tarkoittaa, että kaikki prosessit, jotka käyttävät DLL-ohjelmaa, käyttävät samaa koodin kopiota, kun taas jokaisella prosessilla on oma kopio tiedoista. Ensisijainen dynaaminen Windows-kirjasto on kernel32.dll, joka sisältää Windowsin perustoiminnot (tiedosto- ja muistiominaisuudet). COM (Component Object Model) on DLL: n laajennus OOP: iin (Object Oriented Programming). Tavanomaisia ​​DLL-tiedostoja on helpompi käyttää kuin COM-tiedostoja.

Mikä on LIB?

LIB-tiedostot ovat staattisia kirjastoja (tunnetaan myös nimellä staattisesti linkitetyt kirjastot). LIB-tiedostot sisältävät kokoelman aliohjelmia, ulkoisia toimintoja ja muuttujia. LIB-tiedostot ratkaistaan ​​käännöshetkellä (toisin kuin ajoaikana). Koodi kopioidaan tosiasiallisesti kohdesovellukseen. Kääntäjä, linkki tai sideaine suorittaa tämän tarkkuuden ja tuottaa objektitiedoston ja suoritettavan tiedoston. Tätä prosessia kutsutaan staattiseksi rakennusprosessiksi.

Mitä eroa on DLL: n ja LIB: n välillä??

LIB-kirjastoja voidaan kutsua kääntämisaikana, mutta DLL-kirjastoja voidaan kutsua vain ajon aikana. LIB-tiedostot ovat huomattavasti suurempia kuin DLL-tiedostot. Hyvin yleinen DLL-tiedostojen ongelma on versiointiongelma. Tämä tapahtuu, kun DLL-koodi vaihdetaan ja sovellus käyttää väärää DLL-version versiota. Tämä ei ole LIB-tiedostoihin liittyvä ongelma. Uudelleenkäytettävyyden kannalta, kirjoittaessaan järjestelmien uusia versioita tai täysin uusia sovelluksia, DLL-tiedostot ovat aina parempia kuin LIB-tiedostot.