DLL vs LIB
A könyvtár olyan erőforrások gyűjteménye, amelyek felhasználhatók 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. Az összekapcsolási folyamat során (általában összekötő végzi) a könyvtárak és a futtatható fájlok hivatkoznak egymásra. A könyvtárfájlok statikus és dinamikus könyvtárakra vannak osztva, attól függően, hogy az alprogramok hogyan töltődnek be a célalkalmazásba. Ennek megfelelően a LIB fájlok statikusan összekapcsolt könyvtárak, a DLL fájlok pedig dinamikusan összekapcsolt könyvtárak.
Mi a DLL?
A Dynamic Link Library (közismertebb nevén DLL) egy megosztott könyvtár-megvalósítás, amelyet a Microsoft fejlesztett ki. A.dll,.ocx vagy.drv kiterjesztéseket használja, és ezeket 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 pedig az ActiveX-vezérlőket tartalmazó könyvtárak, a.drv kiterjesztést pedig a régi rendszerillesztő-fájlok használják. A DLL fájlformátum megegyezik a Windows EXE fájlokkal (hordozható futtatható fájlok 32 bites / 64 bites Windows rendszeren és új futtatható 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 (csakúgy, mint az EXE fájlokban). Valójában a DLL fájlformátumú adatfájlokat erőforrás DLL-eknek nevezzük. Az ikonkönyvtárak (.icl kiterjesztéssel) és a betűtípusfájlok (.fon és.fot kiterjesztésekkel) példák az erőforrás-DLL-ekre.
A szakaszoknak nevezett komponensek egy DLL-t alkotnak, és minden szakasznak megvan a saját attribútuma, például írásvédett / írható és futtatható / nem futtatható. A kódrészek futtathatóak, míg az adatrészek nem futtathatók. A kódrészek megosztottak, az adatrészek 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 megvan a maga saját adatmásolata. Az elsődleges dinamikus könyvtár a Windows számára a kernel32.dll, amely tartalmazza az alapfunkciókat (a fájlokkal és a 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-eket könnyebb használni, mint a COM fájlokat.
Mi az a LIB?
A LIB fájlok statikus könyvtárak (más néven statikusan összekapcsolt könyvtárak). A LIB fájlok szubrutinok, külső függvények és változók gyűjteményét tartalmazzák. A LIB fájlokat fordítási időben oldják fel (ellentétben a futással). A kód át van másolva a célalkalmazásba. A fordító, a linker vagy a kötőanyag fogja megtenni ezt a felbontást, és létrehoz egy objektumfájlt és egy futtatható fájlt. Ezt a folyamatot statikus felépítési folyamatnak nevezzük.
Mi a különbség a DLL és a LIB között?
A LIB könyvtárak fordítás közben meghívhatók, de a DLL könyvtárak csak futás közben hívhatók meg. A LIB fájlok lényegesen nagyobbak, mint a DLL fájlok. A DLL fájlok nagyon gyakori problémája a verzióváltozási probléma. Ez akkor történik, ha a DLL kódja megváltozik, és az alkalmazás a DLL nem megfelelő verzióját használja. Ez nem a LIB fájlokkal társított probléma. Az újrafelhasználhatóság szempontjából a rendszerek új verzióinak vagy teljesen új alkalmazások írásakor a DLL-ek mindig jobbak, mint a LIB-k.