DLL:n ja LIB:n välinen ero

DLL:n ja LIB:n välinen ero
DLL:n ja LIB:n välinen ero

Video: DLL:n ja LIB:n välinen ero

Video: DLL:n ja LIB:n välinen ero
Video: Crazy Malaysia Night Market 🇲🇾 KL is Amazing 2024, Marraskuu
Anonim

DLL vs LIB

Kirjasto on kokoelma resursseja, joita voidaan käyttää sovellusten kehittämiseen. Kirjasto koostuu yleensä alirutiineista, funktioista, luokista, arvoista ja tyypeistä. Linkitysprosessin aikana (joka yleensä tekee linkitys) 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 dynaamisesti linkitettyjä kirjastoja.

Mikä on DLL?

Dynamic Link Library (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ä. Tavalliset DLL-tiedostot käyttävät.dll-tiedostoa. 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äohjaintiedostot. DLL-tiedostomuoto on sama kuin Windows EXE -tiedostot (Portable Executable -tiedostot 32-bittisessä/64-bittisessä Windowsissa ja New Executable -tiedostot 16-bittisessä Windowsissa). Siksi mikä tahansa koodin, tiedon ja resurssien yhdistelmä voi olla DLL-tiedostoissa (kuten EXE-tiedostoissa). Itse asiassa DLL-muotoisia datatiedostoja kutsutaan resurssi-DLL:iksi. Kuvakekirjastot (.icl-tunniste) ja fonttitiedostot (.fon- ja.fot-päätteillä) ovat esimerkkejä resurssi-DLL-tiedostoista.

Osoiksi kutsutut komponentit muodostavat DLL:n, ja jokaisella osalla on omat attribuuttinsa, kuten vain luku/kirjoitettava ja suoritettava/ei-suoritettava. Koodiosat ovat suoritettavia, kun taas dataosat eivät ole suoritettavia. Koodiosat jaetaan ja dataosat ovat yksityisiä. Tämä tarkoittaa, että kaikki DLL:ää käyttävät prosessit käyttävät samaa koodikopiota, kun taas jokaisella prosessilla on oma kopio tiedoista. Windowsin ensisijainen dynaaminen kirjasto on kernel32.dll, joka sisältää perustoiminnot (tiedostoon ja muistiin liittyvät toiminnot) Windowsissa. COM (Component Object Model) on DLL:n laajennus OOP:ksi (Object Oriented Programming). Perinteisiä DLL-tiedostoja on helpompi käyttää kuin COM-tiedostoja.

Mikä on LIB?

LIB-tiedostot ovat staattisia kirjastoja (tunnetaan myös staattisesti linkitetyinä kirjastoina). LIB-tiedostot sisältävät kokoelman aliohjelmia, ulkoisia toimintoja ja muuttujia. LIB-tiedostot ratkaistaan käännösaikana (toisin kuin ajon aikana). Koodi itse asiassa kopioidaan kohdesovellukseen. Kääntäjä, linkki tai sidonta tekee tämän ratkaisun 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äännösaikana, 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:n koodia muutetaan ja sovellus käyttää väärää DLL-versiota. Tämä ei ole LIB-tiedostoihin liittyvä ongelma. Uudelleenkäytettävyyden kann alta voidaan todeta, että kun kirjoitat uusia versioita järjestelmistä tai täysin uusia sovelluksia, DLL:t ovat aina parempia kuin LIB:t.

Suositeltava: