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

DLL vs LIB

A könyvtár az erőforrások gyűjteménye, amely felhasználható az alkalmazások fejlesztésére. A könyvtár általában alprogramokból, függvényekből, osztályokból, értékekből és típusokból áll. A kapcsolási folyamat során (általában egy kapcsoló végzi) a könyvtárak és a végrehajtható fájlok hivatkoznak egymásra. A könyvtári fájlok statikus és dinamikus könyvtárakba oszlanak, attól függően, hogy mikor töltik be az alprogramokat a cél alkalmazásba. Ennek megfelelően a LIB fájlok statikusan kapcsolt könyvtárak, a DLL fájlok pedig dinamikusan kapcsolódó könyvtárak.

Mi a DLL?

A Dynamic Link Library (más néven DLL) a Microsoft által kifejlesztett megosztott könyvtár-megvalósítás. A .dll, .ocx vagy .drv kiterjesztéseket használja, és a Microsoft Windows és az 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 az ActiveX vezérlőket tartalmazó könyvtárak használják, a .drv kiterjesztést pedig a régi rendszerillesztő-fájlok használják. A DLL fájl formátuma megegyezik a Windows EXE fájlokkal (hordozható végrehajtható fájlok 32 bites / 64 bites Windows rendszeren és új végrehajtható fájlok 16 bites Windows rendszereken). 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-eknek nevezzük. Ikonkönyvtárak (.icl kiterjesztéssel) és betűkészlet fájlok (.fon és .fot kiterjesztésekkel) példák az erőforrás-DLL-ekre.

A szakaszoknak nevezett összetevők DLL-t alkotnak, és minden szakasznak megvannak a saját attribútumai, például csak olvasható / írható és végrehajtható / nem végrehajtható. A kódrészek végrehajthatók, míg az adatszakaszok nem végrehajthatók. A kódrészletek megosztottak, az adatrészek pedig privátok. Ez azt jelenti, hogy a DLL-t használó összes folyamat ugyanazt a példányt fogja használni, míg az egyes folyamatok rendelkeznek saját adatokkal. A Windows elsődleges dinamikus könyvtára a kernel32.dll, amely tartalmazza a Windows alapfunkcióit (fájl- és memóriafunkciók). A COM (Component Object Model) a DLL kiterjesztése az OOP-ra (Object Oriented Programming). A hagyományos DLL fájlokat könnyebben lehet használni, mint a COM fájlokat.

Mi a LIB??

A LIB fájlok statikus könyvtárak (más néven statikusan kapcsolt könyvtárak). A LIB fájlok tartalmaznak alprogramok, külső függvények és változók gyűjteményét. A LIB fájlok fordítási időben oldódnak meg (szemben a futási idővel). A kódot valójában lemásolja a cél alkalmazásba. Egy fordító, linker vagy iratgyűjtő elvégzi ezt a felbontást, és előállít egy objektum fájlt és egy végrehajtható fájlt. Ezt a folyamatot statikus összeépítési folyamatnak nevezzük.

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

A LIB könyvtárakat összeállítási idő alatt lehet meghívni, de a DLL könyvtárakat csak futási idő alatt lehet meghívni. A LIB fájlok jelentősen meghaladják a DLL fájlokat. A DLL fájlok nagyon gyakori problémája a verziókészí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 jelent problémát a LIB fájlokkal kapcsolatban. Az újrafelhasználhatóság szempontjából, amikor a rendszerek új verzióit vagy teljesen új alkalmazásokat írnak, a DLL mindig jobb, mint a LIB.