Domača » kako » Kaj so DLL datoteke, in zakaj je ena manjka iz mojega računalnika?

    Kaj so DLL datoteke, in zakaj je ena manjka iz mojega računalnika?

    Ko pride do napake, ki pravi, da Windows ni mogel najti določene datoteke DLL, je lahko zelo skušnjava prenesti datoteko iz ene od številnih spletnih mest DLL. Zato ne bi smela.

    Kaj so DLL-ji?

    Preden začnemo s tem, zakaj ne bi morali prenesti datotek DLL (Dynamic Link Library) iz interneta, si najprej poglejmo, kaj so datoteke DLL. Datoteka DLL je knjižnica, ki vsebuje niz kode in podatkov za izvajanje določene dejavnosti v sistemu Windows. Aplikacije lahko nato prikličejo te datoteke DLL, ko jo potrebujejo. Datoteke DLL so zelo podobne izvršljivim (EXE) datotekam, le da datoteke DLL ni mogoče neposredno izvajati v sistemu Windows. Z drugimi besedami, ne morete dvakrat klikniti na datoteko DLL, da bi jo zagnali na enak način kot EXE datoteka. Namesto tega so datoteke DLL zasnovane tako, da jih kličejo druge aplikacije. Pravzaprav so oblikovani tako, da jih lahko kliče več aplikacij hkrati. Del »povezave« imena DLL prav tako kaže na drug pomemben vidik. Več DLL-jev je mogoče povezati skupaj, tako da se ob klicu ene DLL istočasno imenuje tudi več drugih DLL-jev..

    Windows sam uporablja obsežno uporabo DLL-jev, kot ogled skozi C: Windows System32 vam lahko povem. Kot primer tega, o čemer govorimo, si poglejmo sistemsko datoteko Windows comdlg32.dll. Ta datoteka, znana tudi kot skupna knjižnica pogovornih oken, vsebuje kodo in podatke za izgradnjo številnih skupnih pogovornih oken, ki jih vidite v Windows-pogovorna okna za stvari, kot so odpiranje datotek, tiskanje dokumentov itd. Navodila v tej DLL obdelujejo vse, od prejemanja in tolmačenja sporočil, namenjenih pogovornemu oknu, do določitve, kako pogovorno okno izgleda na zaslonu. Očitno je, da lahko več aplikacij istočasno kliče to DLL, sicer ne boste mogli odpreti pogovornega okna (kot spodaj) v več kot eni aplikaciji hkrati..

    DLL-ji omogočajo modularizacijo in ponovno uporabo kode, kar pomeni, da razvijalcem ni treba porabiti časa za pisanje kode iz nič za opravljanje vsakdanje ali skupne funkcije. In čeprav bodo razvijalci ustvarili lastne DLL-je, ki jih bodo namestili s svojimi aplikacijami, je velika večina DLL-jev, ki jih kličejo aplikacije, dejansko v paketu z operacijskim sistemom Windows ali z dodatnimi paketi, kot sta Microsoft .NET Framework ali Microsoftovi redistributivi. Druga velika prednost modulariziranja kode na ta način je, da je posodobitve lažje uporabiti za vsako DLL in ne za celotno aplikacijo, še posebej, če te DLL-ji niso prišle od razvijalca aplikacije. Na primer, ko Microsoft posodobi določene DLL-je v svojem ogrodju .NET, lahko vse aplikacije, ki uporabljajo te DLL, takoj izkoristijo posodobljeno varnost ali funkcionalnost.

    Prenesene DLL datoteke so lahko zastarele

    Torej, z malo razumevanja DLL pod našimi pasovi, zakaj ne bi jih prenesete iz interneta, ko je eden manjka v vašem sistemu?

    Najpogostejši problem, s katerim boste naleteli s prenesenimi DLL-ji, je, da so zastareli. Mnoge spletne strani DLL-jev tam dobijo svoje DLL-je, tako da jih naložijo iz svojih ali njihovih uporabnikovih računalnikov. Verjetno lahko že vidite težavo. Večina teh spletnih strani samo želi vaš promet, in ko je DLL naložen, imajo malo spodbude, da zagotovijo, da je datoteka posodobljena. Dodajte k temu, da prodajalci običajno ne objavljajo posodobljenih DLL-jev v javnosti kot posamezne datoteke in lahko vidite, da celo spletna mesta, ki poskusite posodabljanje datotek verjetno ne bo zelo uspešno.

    Obstaja tudi nadaljnja težava, da so DLL-ji običajno integrirani v pakete. Posodobitev ene DLL v paketu pogosto spremljajo posodobitve drugih povezanih DLL-jev v istem paketu, kar pomeni, da tudi v malo verjetnem primeru dobite najnovejšo datoteko DLL, ne boste dobili povezanih datotek, ki imajo tudi posodobljen.

    Prenesene DLL-je lahko okužite

    Čeprav manj pogosta, je potencialno veliko slabši problem to, da lahko DLL-je, ki jih prenesete iz drugih virov, kot je prodajalec, včasih naložite z virusi ali drugo škodljivo programsko opremo, ki lahko okuži vaš računalnik. To še posebej velja za spletna mesta, ki niso preveč previdna glede tega, kje dobijo svoje datoteke. In to ni všeč, da bodo ta spletna mesta izginila, da bi vam povedala o svojih tveganih virih. Res strašen del je, da če prenesete okuženo datoteko DLL, tvegate zaradi same narave datotek DLL, ki dajejo datoteki globlji dostop, kot ga lahko dobi redna okužena datoteka..

    Dobra novica je, da lahko dobra protivirusna aplikacija v realnem času običajno zazna te okužene datoteke DLL, preden jih dejansko shranite v sistem in jim preprečite, da bi poškodovali. Kljub temu se morate zavedati, da vam celo odličen protivirusni program ne zagotavlja popolne zaščite. Če se navadite s prenosom tveganih datotek, vas bo verjetno v določenem trenutku dohitela. Najbolje je, da se izognete tem spletnim mestom DLL.

    Verjetno ne bodo rešili vašega problema

    Čeprav je možno, da je samo ena datoteka DLL na vašem računalniku poškodovana ali izbrisana, je bolj verjetno, da so tudi druge datoteke DLL ali povezane datoteke aplikacij poškodovane ali manjkajo. Razlog, da ste dobili napako o eni določeni datoteki, je, da je to prva napaka, ki jo je aplikacija naletela pred zrušitvijo in preprosto niste obveščeni o preostalem. To je lahko resnično, ne glede na vzrok problema.

    Zakaj DLL manjkajo ali so poškodovani? Morda je druga napačna aplikacija ali posodobitev poskušala zamenjati datoteko in ni uspela, ali pa jo je nadomestila z zastarelo kopijo. To je lahko napaka pri namestitvi vaše glavne aplikacije ali v paketu, kot je .NET. Mogoče je celo, da imate na trdem disku še en problem, kot so slabi sektorji, ki preprečujejo pravilno nalaganje datoteke.

    Kako lahko popravim svojo napako DLL?

    Edini način, da zagotovite, da dobite stabilno, posodobljeno in čisto DLL datoteko, je, da jo dobite preko vira, iz katerega izvira. Običajno bo ta vir:

    • Namestitveni medij Windows. Malo verjetno boste lahko preprosto kopirali datoteko DLL iz namestitvenega medija, vendar imate hitro možnost, da poskusite, preden naredite nekaj tako drastičnega, kot je ponovna namestitev sistema Windows. Uporabite lahko orodje za zaščito virov v sistemu Windows (pogosto imenovano pregledovalnik sistemskih datotek ali SFC), ki bo v sistemu Windows pregledalo in popravilo poškodovane ali manjkajoče sistemske datoteke. Namestitveni medij morate imeti pri roki, ko zaženete orodje, samo v primeru, da mora kopirati datoteko od tam. (Če nimate namestitvenega diska, ga lahko prenesete tukaj.)
    • Paketi Microsoft .NET Framework. Več različic .NET-a se samodejno namesti skupaj z operacijskim sistemom Windows, številne aplikacije pa namestijo tudi datoteke iz teh paketov. Lahko preberete naš članek o ogrodju .NET, ki vsebuje tudi nekaj nasvetov za iskanje in popravilo s tem povezanih težav.
    • Različni paketi za razširjanje Microsoft Visual C ++. Odvisno od aplikacij, ki jih uporabljate, imate v računalniku nameščene več različic programske opreme C ++ Redistributable. Včasih je težko omejiti, kateri je krivec, a dobro mesto za začetek je naš članek o C ++ redistributable, ki vsebuje tudi več korakov za odpravljanje težav in povezave, kjer lahko prenesete najnovejše različice neposredno iz Microsofta.
    • Aplikacija, s katero je DLL prišla. Če je bila DLL nameščena skupaj z aplikacijo, namesto da bi bila del ločenega paketa, je najbolje, da ponovno namestite aplikacijo. Nekatere aplikacije omogočajo popravilo namesto polne ponovne namestitve. Obe možnosti bi morali delovati, ker popravilo običajno išče manjkajoče datoteke v namestitvenih mapah.

    Če vse to ne uspe, se lahko obrnete na prodajalca aplikacije in zahtevate kopijo posamezne datoteke DLL. Nekatera podjetja so odprta za to zahtevo; nekateri niso. Če naletite na podjetje, ki ne bo nudilo posameznih datotek, bodo morda morda lahko ponudili druge predloge za reševanje vaše težave.