Különbség a DLL és a LIB között

Különbség a DLL és a LIB között
Különbség a DLL és a LIB között

Videó: Különbség a DLL és a LIB között

Videó: Különbség a DLL és a LIB között
Videó: Mi a különbség a bűntudat és a szégyenérzet között? 2024, Július
Anonim

DLL vs LIB

A könyvtár olyan erőforrások gyűjteménye, amely alkalmazások fejlesztésére használható. A könyvtár általában szubrutinokból, függvényekből, osztályokból, értékekből és típusokból áll. A csatolási folyamat során (amelyet általában egy linker végez) a könyvtárak és a végrehajtható fájlok hivatkoznak egymásra. A könyvtárfájlok statikus és dinamikus könyvtárakra vannak felosztva attól függően, hogy az alprogramok mikor töltődnek be a célalkalmazásba. Ennek megfelelően a LIB fájlok statikusan csatolt könyvtárak, a DLL fájlok pedig dinamikusan kapcsolt könyvtárak.

Mi az a DLL?

Dynamic Link Library (közismertebb nevén DLL) a Microsoft által kifejlesztett megosztott könyvtári megvalósítás. A.dll,.ocx vagy.drv kiterjesztést használja, és Microsoft Windows és OS/2 operációs rendszerekben használják. A.dll fájlt a szokásos DLL-fájlok használják. Az.ocx kiterjesztést pedig az ActiveX-vezérlőket tartalmazó könyvtárak, a.drv kiterjesztést pedig a régebbi rendszer-illesztőprogram-fájlok használják. A DLL fájl formátuma megegyezik a Windows EXE fájlokkal (a hordozható végrehajtható fájlok 32 bites/64 bites Windows rendszeren, és az új végrehajtható fájlok 16 bites Windows rendszeren). Ezért a kód, az adatok és az erőforrások bármilyen kombinációja megtalálható a DLL-fájlokban (akárcsak az EXE-fájlokban). Valójában a DLL fájlformátumú adatfájlokat erőforrás-DLL-nek nevezzük. Az ikonkönyvtárak (.icl kiterjesztéssel) és a fontfájlok (.fon és.fot kiterjesztéssel) példák az erőforrás-DLL-ekre.

A szekcióknak nevezett komponensek egy DLL-t alkotnak, és minden szakasznak saját attribútumai vannak, például csak olvasható/írható és végrehajtható/nem futtatható. A kódszakaszok végrehajthatók, míg az adatszakaszok nem futtathatók. A kódszakaszok megosztottak, az adatszakaszok pedig privátak. Ez azt jelenti, hogy a DLL-t használó összes folyamat ugyanazt a kódmásolatot fogja használni, míg minden folyamatnak saját másolata lesz az adatokról. A Windows elsődleges dinamikus könyvtára a kernel32.dll, amely tartalmazza az alapfunkciókat (a fájlokkal és memóriával kapcsolatos funkciókat) a Windows rendszeren. A COM (Component Object Model) a DLL kiterjesztése OOP-ra (Object Oriented Programming). A hagyományos DLL-ek könnyebben használhatók, mint a COM-fájlok.

Mi az a LIB?

A LIB fájlok statikus könyvtárak (más néven statikusan csatolt könyvtárak). A LIB fájlok szubrutinokat, külső függvényeket és változókat tartalmaznak. A LIB-fájlok feloldása fordítási időben történik (a futási idővel ellentétben). A kód valójában be van másolva a célalkalmazásba. Egy fordító, linker vagy binder elvégzi ezt a felbontást, és létrehoz egy objektumfájlt és egy végrehajtható fájlt. Ezt a folyamatot statikus felépítési folyamatnak nevezik.

Mi a különbség a DLL és a LIB között?

LIB könyvtárak hívhatók a fordítási idő alatt, de a DLL könyvtárak csak a futási idő alatt. A LIB fájlok lényegesen nagyobbak, mint a DLL fájlok. A DLL fájlokkal kapcsolatos nagyon gyakori probléma a verziószámítási probléma. Ez akkor fordul elő, ha a DLL kódja megváltozik, és az alkalmazás a DLL rossz verzióját használja. Ez nem a LIB fájlokkal kapcsolatos probléma. Az újrafelhasználhatóság szempontjából a rendszerek új verzióinak vagy teljesen új alkalmazásoknak a írásakor a DLL-ek mindig jobbak, mint a LIB-k.

Ajánlott: