Úvodná » ako » Aké sú súbory DLL a prečo chýba z môjho počítača?

    Aké sú súbory DLL a prečo chýba z môjho počítača?

    Keď sa zobrazí chybové hlásenie, že systém Windows nedokázal nájsť konkrétny súbor DLL, môže to byť strašne lákavé stiahnuť súbor z jedného z mnohých lokalít DLL. Tu je dôvod, prečo by ste nemali.

    Čo sú DLL?

    Skôr ako začneme, prečo by ste nemali stiahnuť súbory Dynamic Link Library (DLL) z Internetu, poďme sa najprv pozrieť na to, čo sú súbory DLL. Súbor DLL je knižnica, ktorá obsahuje súbor kódov a údajov na vykonávanie konkrétnej aktivity v systéme Windows. Aplikácie potom môžu zavolať na tieto súbory DLL, keď potrebujú túto aktivitu vykonať. Súbory DLL sú veľmi podobné spustiteľným (EXE) súborom, s výnimkou toho, že súbory DLL nemôžu byť priamo spustené v systéme Windows. Inými slovami, nemôžete dvakrát kliknúť na súbor DLL, aby ste ho spustili rovnakým spôsobom ako súbor EXE. Namiesto toho sú súbory DLL určené na vyvolanie inými aplikáciami. V skutočnosti sú navrhnuté tak, aby ich používali viaceré aplikácie naraz. Časť odkazu na názov DLL tiež naznačuje ďalší dôležitý aspekt. Viaceré DLL môžu byť navzájom prepojené tak, že keď sa volá jedna DLL, volá sa súčasne aj niekoľko ďalších DLL.

    Samotný Windows používa rozsiahle DLL ako prehliadku cez C: \ Windows \ System32 priečinok vám môže povedať. Ako príklad toho, o čom sme hovorili, uvažujme systémový súbor systému Windows "comdlg32.dll". Tento súbor, inak známy ako Common Dialog Box Library, obsahuje kód a dáta na vytvorenie mnohých bežných dialógových okien, ktoré vidíte v Windows-dialógové okná pre veci ako otváranie súborov, tlač dokumentov atď. Pokyny v tejto knižnici DLL spracujú všetko od prijímania a interpretácie správ určených pre dialógové okno na určenie toho, ako dialógové okno vyzerá na obrazovke. Je zrejmé, že viaceré aplikácie môžu túto súčasť DLL súčasne zavolať, inak by ste neboli schopní otvoriť dialógové okno (ako je uvedené nižšie) vo viac ako jednej aplikácii naraz.

    DLL umožňujú modularizáciu a opätovné použitie kódu, čo znamená, že vývojári nemusia tráviť čas písaním kódu od začiatku na vykonávanie svetských alebo spoločných funkcií. A aj keď vývojári vytvoria svoje vlastné súbory DLL na inštaláciu pomocou svojich aplikácií, drvivá väčšina DLL nazývaných aplikáciami je vlastne spojená s Windows alebo s ďalšími balíčkami, ako je Microsoft .NET Framework alebo Microsoft C ++ Redistributables. Ďalšou veľkou výhodou modularizačného kódu je, že aktualizácie sa jednoduchšie aplikujú na každú DLL skôr než na celú aplikáciu - najmä ak tieto DLL nepochádza od vývojára aplikácie. Napríklad, keď spoločnosť Microsoft aktualizuje určité DLL v .NET Framework, všetky aplikácie, ktoré používajú tieto DLL, môžu okamžite využiť aktualizované zabezpečenie alebo funkčnosť.

    Stiahnuté DLL môžu byť zastarané

    Takže s trochou chápania DLL pod našimi pásmi, prečo ich nie je stiahnutá z Internetu, ak niekto z vášho systému chýba?

    Najčastejším problémom, s ktorým budete pracovať so stiahnutými súbormi DLL, je to, že sú zastarané. Mnohé stránky DLL tam vonku dostanú svoje DLL iba tým, že ich odovzdajú z vlastných počítačov alebo ich používateľských počítačov. Problém možno pravdepodobne nájdete. Väčšina z týchto stránok chcú len vašu návštevnosť a po načítaní DLL majú len málo podnetov na to, aby zabezpečili aktualizáciu súboru. Pridajte k tomu, že dodávatelia zvyčajne nevydávajú aktualizované DLL pre verejnosť ako jednotlivé súbory a môžete vidieť, že aj stránky, ktoré vyskúšať aby boli súbory aktuálne, pravdepodobne nebude veľmi úspešné.

    Existuje tiež ďalší problém, že DLL sú zvyčajne integrované do balíčkov. Aktualizácia jednej DLL v balíku je často sprevádzaná aktualizáciami iných súvisiacich DLL v rovnakom balíku, čo znamená, že dokonca aj v nepravdepodobnej situácii, keď dostanete aktualizovaný súbor DLL, nedostanete súvisiace súbory, ktoré majú tiež boli aktualizované.

    Stiahnuté DLL môžu byť infikované

    Aj keď je menej časté, potenciálne oveľa horší problém je, že súbory DLL, ktoré si stiahnete z iných zdrojov ako je predajca, niekedy môžu byť načítané vírusmi alebo iným škodlivým softvérom, ktorý môže infikovať váš počítač. Platí to najmä pre stránky, ktoré nie sú príliš opatrné, pokiaľ ide o to, kde dostanú svoje súbory. A to nie je, že tieto stránky budú ísť z cesty, aby vám povedali o svojich rizikových zdrojoch. Naozaj hrozná časť je, že ak si stiahnete infikovaný súbor DLL, riskujete - samotnou podstatou súborov DLL - dáva tomuto súboru hlbší prístup, ako by sa mohol dostať pravidelne infikovaný súbor.

    Dobrou správou je, že dobrá antivírová aplikácia v reálnom čase môže zvyčajne detekovať tieto infikované súbory DLL, skôr ako sú skutočne uložené do vášho systému a zabránia im v poškodení. Napriek tomu musíte mať na pamäti, že aj skvelý antivírusový program vám nemusí poskytnúť dokonalú ochranu. Ak máte zvyk sťahovať rizikové súbory, je pravdepodobné, že vás do určitej miery dohoní. Najlepšie je len vyhnúť sa týmto stránkam DLL.

    Oni pravdepodobne nevyriešia váš problém

    Aj keď je možné, že sa na vašom počítači poškodil alebo vymazal iba jeden súbor DLL, je pravdepodobnejšie, že aj iné DLL alebo súvisiace súbory aplikácií sú tiež poškodené alebo chýbajú. Dôvod, prečo sa vyskytne chyba v súvislosti s určitým konkrétnym súborom, je, že je to prvá chyba, ktorá sa vyskytla pred zhadnutím aplikácie a jednoducho nie ste o ostatných informovaní. To môže byť pravda bez ohľadu na príčinu problému.

    Prečo môžu DLL chýbať alebo poškodiť? Je možné, že sa iná chybná aplikácia alebo aktualizácia pokúsila súbor nahradiť a zlyhal alebo ju nahradila zastaralou kópiou. Môže to byť chyba pri inštalácii vašej hlavnej aplikácie alebo v balíku ako .NET. Môže to byť dokonca aj to, že máte na vašom pevnom disku iné chybné sektory, ktoré zabraňujú správnemu načítaniu súboru.

    Ako môžem opraviť chybu DLL?

    Jediným spôsobom, ako zabezpečiť, aby ste dostali stabilnú, aktuálnu a čistú DLL, je dostať sa cez zdroj, z ktorého pochádza. Zvyčajne bude tento zdroj:

    • Inštalačné médium systému Windows. Je nepravdepodobné, že budete môcť jednoducho skopírovať súbor DLL z inštalačného média, ale máte rýchlu voľbu vyskúšať skôr, ako urobíte niečo také drastické ako reintalovanie systému Windows. Môžete použiť nástroj na ochranu zdrojov systému Windows (často označovaný ako kontrola systémových súborov alebo SFC), ktorý vyhľadá a opraví poškodené alebo chýbajúce systémové súbory v systéme Windows. Mali by ste mať svoje inštalačné médium užitočné pri spustení nástroja, len ak potrebujete skopírovať súbor odtiaľ. (Ak nemáte inštalačný disk, môžete si ho stiahnuť tu.)
    • Balíky Microsoft .NET Framework. Niekoľko verzií .NET sa automaticky nainštalujú spolu so systémom Windows a mnoho aplikácií tiež nainštaluje súbory z týchto balíčkov. Môžete si prečítať náš článok o .NET framework, ktorý má tiež niekoľko rád pre nájdenie a opravu súvisiacich problémov.
    • Rôzne balíky Microsoft Visual C ++ Redistributable. V závislosti od aplikácií, ktoré používate, môžete na počítači nainštalovať viacero verzií C ++ Redistributable. Niekedy môže byť ťažké zúžiť, ktorý z nich je vinníkom, ale dobré miesto na začiatok je náš článok o C ++ redistributables, ktorý obsahuje niekoľko krokov na riešenie problémov a odkazy, kde si môžete stiahnuť najaktuálnejšie verzie priamo od spoločnosti Microsoft.
    • Aplikácia s DLL prišla. Ak bola verzia DLL nainštalovaná spolu s aplikáciou, a nie ako súčasť samostatného balíka, vašou najlepšou stávkou je len preinštalovanie aplikácie. Niektoré aplikácie vám umožňujú vykonať opravu namiesto úplnej preinštalácie. Obidve možnosti by mali fungovať, pretože oprava obvykle vyhľadáva chýbajúce súbory v inštalačných priečinkoch.

    Ak všetko zlyhá, môžete sa obrátiť na dodávateľa aplikácie a požiadať o kópiu súboru s jednotkou DLL. Niektoré spoločnosti sú na túto žiadosť otvorené; Niektoré nie. Ak narazíte na spoločnosť, ktorá neposkytne jednotlivé súbory, môžu aspoň ponúknuť ďalšie návrhy na vyriešenie vášho problému.