Ero DLL: N Ja LIB: N Välillä

Ero DLL: N Ja LIB: N Välillä
Ero DLL: N Ja LIB: N Välillä

Video: Ero DLL: N Ja LIB: N Välillä

Video: Ero DLL: N Ja LIB: N Välillä
Video: Dame Tu cosita ñ 2024, Maaliskuu
Anonim

DLL vs. LIB

Kirjasto on kokoelma resursseja, joita voidaan käyttää sovellusten kehittämiseen. Kirjasto koostuu yleensä aliohjelmista, funktioista, luokista, arvoista ja tyypeistä. Yhdistämisprosessin aikana (yleensä linkkerin tekemä) kirjastot ja suoritettavat tiedostot viittaavat toisiinsa. Kirjastotiedostot jaetaan staattisiin ja dynaamisiin kirjastoihin sen mukaan, milloin aliohjelmat ladataan kohdesovellukseen. Vastaavasti LIB-tiedostot ovat staattisesti linkitettyjä kirjastoja ja DLL-tiedostot ovat dynaamisesti linkitettyjä kirjastoja.

Mikä on DLL?

Dynaaminen linkkikirjasto (tunnetaan paremmin nimellä DLL) on Microsoftin kehittämä jaetun kirjaston toteutus. Se käyttää.dll-,.ocx- tai.drv-laajennuksia ja niitä käytetään Microsoft Windows- ja OS / 2-käyttöjärjestelmissä..dll-tiedostoa käyttävät tavalliset DLL-tiedostot. Ja.ocx-laajennusta käyttävät kirjastot, jotka sisältävät ActiveX-komponentteja, ja.drv-laajennusta käyttävät vanhat järjestelmän ohjaintiedostot. DLL-tiedostomuoto on sama kuin Windows EXE -tiedostot (kannettavat suoritettavat tiedostot 32-bittisessä / 64-bittisessä Windowsissa ja uudet suoritettavat tiedostot 16-bittisessä Windowsissa). Siksi mikä tahansa yhdistelmä koodia, tietoja ja resursseja voi sisältyä DLL-tiedostoihin (aivan kuten EXE-tiedostoissa). Itse asiassa DLL-tiedostomuodossa olevia tiedostoja kutsutaan resurssien DLL-tiedostoiksi. Kuvakekirjastot (.icl-laajennuksella) ja kirjasintiedostot (.fon- ja.fot-laajennuksilla) ovat esimerkkejä resurssien DLL-tiedostoista.

Osiksi kutsutut komponentit muodostavat DLL: n ja jokaisella osalla on omat määritteensä, kuten vain luku / kirjoitettava ja suoritettava / ei suoritettava. Koodiosat ovat suoritettavia, kun taas tieto-osia ei voida suorittaa. Koodiosat ovat jaettuja ja dataosastot ovat yksityisiä. Tämä tarkoittaa, että kaikki DLL-tiedostoja käyttävät prosessit käyttävät samaa kopiota koodista, kun taas jokaisella prosessilla on oma kopio tiedoista. Windowsin ensisijainen dynaaminen kirjasto on kernel32.dll, joka sisältää Windowsin perustoiminnot (tiedostoihin ja muistiin liittyvät toiminnot). COM (Component Object Model) on DLL: n laajennus OOP: ksi (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ösaikana (toisin kuin ajoaika). Koodi kopioidaan itse asiassa kohdesovellukseen. Kääntäjä, linkittäjä tai sideaine tekee tämän tarkkuuden ja tuottaa objektitiedoston ja suoritettavan tiedoston. Tätä prosessia kutsutaan staattiseksi rakennusprosessiksi.

Mitä eroa on DLL: llä ja LIB: llä?

LIB-kirjastoja voidaan kutsua kääntöaikana, mutta DLL-kirjastoja voidaan kutsua vain ajon aikana. LIB-tiedostot ovat huomattavasti suurempia kuin DLL-tiedostot. Hyvin yleinen ongelma DLL-tiedostoissa on versiointiongelma. Tämä tapahtuu, kun DLL-koodia muutetaan ja sovellus käyttää väärää DLL-versiota. Tämä ei ole LIB-tiedostoihin liittyvä ongelma. Uudelleenkäytettävyyden kannalta, kun kirjoitetaan uusia versioita järjestelmistä tai kokonaan uusia sovelluksia, DLL: t ovat aina parempia kuin LIB: t.

Suositeltava: