PDA

Pogledaj cijelu verziju : DLLovi



Plexihack
24-12-2007, 23:04
Nakon pretrage wikipedije,koja mi ništa nije objasnila,obraćam se vama za pomoć.

Što su DLLovi?

Skužio sam da je to neka vrsta headera (probably wrong :) ),ali ne razumijem čemu služe,kako se koriste i šta su točno.

Burek_fr0m_SPACE
24-12-2007, 23:31
Što su DLLovi?
Dynamicly Linked Library. To su takođe kompajlirane izvršne datoteke (poput EXE), samo što se ne mogu samostalno pokretati, niti su za to predviđene. Do izvršavanja dolazi samo ako neki EXE poveže neki od DLLova i pozove njegove funkcije. Najčešće sadrže neke zajedničke funkcije koje više programa koristi, tako da ti programi ne moraju imati u sebi to, već jednostavno "prikače" DLL i pozivaju njegove funkcije. DirectX se, recimo, sastoji od velikog broja DLLova koji strpljivo iščekuju prozivanje od strane programa i igara koji upotrebljavaju funkcionalnost DX-a. Ono što manje ljudi zna je, da su DLLovi nastali prvenstveno zbog uštede prostora na disketama u vrijeme kada PCovi nisu standardno imali hard diskove, a ne samo zbog reciklaže koda. Druga strana oštrice je što povećio dio problema s Windowsom uopšte nastaje zbog nedostajućih DLLova ili pogrešnih verzija istih. Pojava je maštovito nazvana "DLL hell".

RayDX
24-12-2007, 23:50
Što su DLLovi?
Dynamicly Linked Library. To su takođe kompajlirane izvršne datoteke (poput EXE), samo što se ne mogu samostalno pokretati, niti su za to predviđene. Do izvršavanja dolazi samo ako neki EXE poveže neki od DLLova i pozove njegove funkcije. Najčešće sadrže neke zajedničke funkcije koje više programa koristi, tako da ti programi ne moraju imati u sebi to, već jednostavno "prikače" DLL i pozivaju njegove funkcije. DirectX se, recimo, sastoji od velikog broja DLLova koji strpljivo iščekuju prozivanje od strane programa i igara koji upotrebljavaju funkcionalnost DX-a. Ono što manje ljudi zna je, da su DLLovi nastali prvenstveno zbog uštede prostora na disketama u vrijeme kada PCovi nisu standardno imali hard diskove, a ne samo zbog reciklaže koda. Druga strana oštrice je što povećio dio problema s Windowsom uopšte nastaje zbog nedostajućih DLLova ili pogrešnih verzija istih. Pojava je maštovito nazvana "DLL hell".

Needless to say more ^^ GG

SkunK
25-12-2007, 09:26
Isto tako svi mozemo radit svoje dll-ove ali za to je potrebno znanje programskih jezika i kako rade windowsi i PC-i opcenito.

cro_games
25-12-2007, 12:02
Isto tako svi mozemo radit svoje dll-ove ali za to je potrebno znanje programskih jezika i kako rade windowsi i PC-i opcenito.

Da se nadovežem an ovo da moš pravit svoje...dll koji sam kreiraš možeš ubacit u programe koji podržavaju takozvane "priključke" da bi im dodao neke nove mogućnosti....recimo kod programa za crtanje ili modeliranje možeš dodat neke dll failove koje ti omogućuju exportiranje u drugčije formate od standardnih ili za dodavanje novih alata....

Burek_fr0m_SPACE
25-12-2007, 18:11
Da se nadovežem an ovo da moš pravit svoje...dll koji sam kreiraš možeš ubacit u programe koji podržavaju takozvane "priključke" da bi im dodao neke nove mogućnosti....recimo kod programa za crtanje ili modeliranje možeš dodat neke dll failove koje ti omogućuju exportiranje u drugčije formate od standardnih ili za dodavanje novih alata....
Da se i ja nadovežem da je u tom slučaju nužno poznavanje specifikacija za taj DLL, jer program koji ih poziva je fiksan i očekuje strogo definisane nazive, parametre i sl. Npr. ne možeš pisati plug-in za Photoshop, ako ne znaš uopšte ni šta Photoshop poziva i kada, ni kakve parametre daje, ni kakve rezultate očekuje. Tu ništa ne smije biti "otprilike". Stoga često uz dokumentaciju dolazi i jedan "obrazac/predložak" (template) DLL-a koji sadrži minimalnu funkcionalnost nužnu da bi ga host aplikacija prepoznala i upotrijebila, jer je tako najlakše shvatiti principe, a onda je ionako na programeru samo da "ubaci" svoje stvari u taj template.

Tracer
03-01-2008, 12:27
Općenito, dll može koristiti kada se iz njega pozivaju eksportabilne funkcije, uzimaju resursi (dijalozi, ikone, slike...), dok može sadržavati i COM komponente. Ukoliko su one vizualne onda se "pakiraju" u ActiveX biblioteku tj. u datoteku s OCX ekstenzijom... što je isto što i DLL. Velika prednost je što se DLL funkcije mogu pozvati iz bilo kojeg programskog jezika ili malo boljeg razvojnog okruženja zbog čega je moguće jedan program parcijalno napraviti u čak nekoliko programskih jezika.