Dinamikus csatolású könyvtár
A DLL (Dynamic Link Library, szó szerint „dinamikus csatolású/hivatkozású könyvtár”) kifejezés az informatikában a Windows operációs rendszerek alkalmazásainak (programjainak) segédfájljait, egészen pontosan az ún. megosztott könyvtárakat jelentik: ezek eljárásokat (függvényeket), a más programokhoz, illetve rendszerekhez való illeszkedést (kompatibilitást) segítő eszközöket, esetleg a programok ikonjait tárolják (utóbbira példa a Windows rendszerkönyvtárában található shell32.dll
, moricons.dll
, setupapi.dll
vagy pifmgr.dll
). A DLL-ek .dll kiterjesztésű fájlokként tárolódnak (lásd még: fájlformátum). Egy-egy alkalmazáshoz általában több DLL is tartozik, amelyek nélkül az alkalmazás nem tud működni, és fordítva, egy adott DLL általában több alkalmazás futtatására is alkalmas, hiszen éppen ez jelenti azt, hogy e fájlok tartalma megosztott.
A DLL kifejezést nehéz magyarra fordítani, a Windows honosítását végző informatikai szakembereknek sem sikerült egységes nyelvezetet alkotniuk (de az eredeti, angol nyelvű Windows terminológia sem egységes). A különböző változatokban előfordul a „dinamikus hivatkozású könyvtár”, a „dinamikus szerkesztésű könyvtár” fordítás, jelenleg pedig a „dinamikus csatolású könyvtár” használatos. Néhány Windows rendszerben egyszerűen horribile dictu az „alkalmazás kiterjesztése” (Windows 98 második kiadás) vagy „alkalmazáskiterjesztés” (Windows XP) kifejezés is látható, („application extension”, ami megint csak roppant szerencsétlen a fájlnevek kiterjesztéseivel való keverhetőség miatt), vélhetőleg azért, nehogy elijesszék az embert a hosszú idegen kifejezések.
- Példa: a Windows rendszerkönyvtárban található
commdlg.dll
fájlban többek közt azon egyszerű párbeszédablakok leírásai tárolódnak, melyeken keresztül egy-egy programmal „beszélgetni” szoktunk. E DLL fájlneve egyébként a „common dialog” kifejezés rövidítése.
A „dinamikus” szerkesztés, csatolás stb. kifejezések arra próbálnak utalni, hogy a DLL-ben tárolt adatok csak akkor töltődnek be az operatív memóriába, ha azokat a program meghívja, vagyis ilyenkor dinamikusan szerkesztődik össze a hívó program és a DLL-ből meghívott eljárás.
A „könyvtár” (library) kifejezés egyszerűen arra utal, hogy a fájl adatokat tárol, amelyeket a Windows-programok szükség esetén „kikölcsönöznek”. A magyar fordítás kicsit szerencsétlen, mert a régebbi Windows rendszerek integráns részeként is létező DOS rendszerek nyelvén a „könyvtár” kifejezés már foglalt volt a meghajtók adatokat nem tartalmazó logikai egységeire, melyek a fájlokat tartalmazzák; bár ezeket az egységeket a Windows terminológiája már „mappának” nevezi. A könyvtár elnevezés helyett talán szerencsésebb lenne a „függvénytár” elnevezés. Ezt a terminológiai káoszt egyébként a DOS magyarítása idézte elő: az angol DOS-os „directory” szó ugyanis nem könyvtárat, hanem címtárat, tartalomjegyzéket jelent.
A DLL-eknek sok előnye és hátránya van. Alapvetően azért hozták létre őket, hogy az egyéni programozók könnyebben készíthessenek a Windows rendszerek alatt futó programokat, a DLL-ekben tárolt függvényeket felhasználva, és ezáltal a Windows használhatósága és elterjedtsége még nagyobb legyen. A rájuk való építés azt is eredményezi, hogy sok DLL-fájl nélkül az őket meghívó programok nem képesek működni. Tapasztalatlan felhasználók sokszor egyszerűen törlik ezeket, és aztán észreveszik, hogy az illető program nem fut, váratlan hibát okoz, vagy újratelepítését kéri.
A Windows-programoknak, különösen a rendszerprogramoknak (melyek a Windows operációs rendszer integráns részét alkotják, és azzal együtt telepítésre kerülnek) más segédfájljaik is vannak: a legfontosabbak a *.dat
fájlok („adatfájlok”), és a .bin
fájlok („bináris fájlok” [ide vehetjük még az .ico
fájlokat, vagyis az ikonokat]).
Források
[szerkesztés]- Hart, Johnson. Windows System Programming Third Edition. Addison-Wesley, 2005. ISBN 0-321-25619-0
- Rector, Brent et al. Win32 Programming. Addison-Wesley Developers Press, 1997. ISBN 0-201-63492-9.
Kapcsolódó szócikkek
[szerkesztés]További információk
[szerkesztés]- __declspec C++ Language Reference on MSDN
- dllexport, dllimport[halott link] on MSDN
- Dynamic-Link Libraries on MSDN
- What is a DLL? on Microsoft support site
- Dynamic-Link Library Functions on MSDN
- Microsoft Portable Executable and Common Object File Format Specification
- Simple C++ DLL Loading a Message Box Tutorial Archiválva 2009. január 6-i dátummal a Wayback Machine-ben
- Win32 DLL on www.functionx.com. Tutorial for making and using DLLs
- Delay Load Dlls Error Recovery on www.codemaestro.com.
- Loading a DLL from memory
- Creating a Windows DLL with Visual Basic
- Using DLLs from native Python code
- Common DLL Errors and Fixes in Windows Vista
- Microsoft specification for dll files
A Microsoft Windows komponensei | |||||
---|---|---|---|---|---|
Menedzsmenteszközök |
| ||||
Alkalmazások |
| ||||
Shell |
| ||||
Szolgáltatások |
| ||||
Fájlrendszerek |
| ||||
Szerver |
| ||||
Architektúra |
| ||||
Biztonság |
| ||||
Kompatibilitás |
| ||||
API | |||||
Megszűnt |
|
Text is available under the CC BY-SA 4.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.