Pagrindinis » kaip » Kas yra DLL failai ir kodėl mano kompiuterio nėra?

    Kas yra DLL failai ir kodėl mano kompiuterio nėra?

    Kai gausite klaidą sakydami, kad „Windows“ nerado konkretaus DLL failo, gali būti labai viliojanti atsisiųsti failą iš vienos iš daugelio DLL svetainių. Štai kodėl neturėtumėte.

    Kas yra DLL?

    Prieš pradedant apie tai, kodėl neturėtumėte atsisiųsti „Dynamic Link Library“ (DLL) failų iš interneto, pirmiausia pažiūrėkime, kokie DLL failai yra. DLL failas yra biblioteka, kurioje yra kodo ir duomenų rinkinys tam tikrai veiklai vykdyti Windows sistemoje. Tada programos gali pakviesti tuos DLL failus, kai jiems reikia šios veiklos. DLL failai yra labai panašūs į vykdomuosius (EXE) failus, išskyrus tai, kad DLL failai negali būti tiesiogiai vykdomi „Windows“. Kitaip tariant, negalite dukart spustelėti DLL failo, kad jį paleistumėte taip pat, kaip ir EXE failą. Vietoj to, DLL failai yra suprojektuoti taip, kad juos pakviestų kitos programos. Tiesą sakant, jie yra suprojektuoti taip, kad juos vienu metu pakviestų kelios programos. DLL pavadinimo dalis taip pat rodo kitą svarbų aspektą. Keli DLL gali būti susieti taip, kad kai vadinamas vienas DLL, tuo pačiu metu taip pat vadinami keli kiti DLL.

    „Windows“ pati plačiai naudoja DLL, kaip kelionė per C: „Windows“ sistema32 aplankas gali jums pasakyti. Kaip pavyzdį, apie ką kalbame, apsvarstykime „Windows“ sistemos failą „comdlg32.dll“. Šis failas, kitaip žinomas kaip „Bendrojo dialogo langų biblioteka“, turi kodą ir duomenis, skirtus daugeliui bendrų dialogo langų, kuriuos matote „Windows“ dialogai, skirti failams atidaryti, dokumentams spausdinti ir pan. Šiame DLL vadove aptariama, kaip gauti ir interpretuoti dialogo langui skirtus pranešimus, nurodant, kaip dialogo langas atrodo ekrane. Akivaizdu, kad tuo pačiu metu gali būti iškviestos kelios programos, nes priešingu atveju negalėsite atidaryti dialogo lango (pvz., Toliau pateikto) daugiau nei vienoje programoje.

    DLL leidžia moduliuoti kodą ir pakartotinai naudoti, o tai reiškia, kad kūrėjams nereikia praleisti laiko rašyti kodą iš naujo, kad galėtų atlikti kasdienes ar bendras funkcijas. Ir nors kūrėjai sukurs savo DLL, kad galėtų įdiegti su savo programomis, didžioji dalis „DLL“, vadinamų „apps“, iš tikrųjų yra susieta su „Windows“ arba su papildomais paketais, pvz., „Microsoft .NET Framework“ arba „Microsoft C ++ Redistributables“. Kitas didelis moduliavimo kodo privalumas tokiu būdu yra tai, kad atnaujinimai yra lengviau taikomi kiekvienam DLL, o ne visai programai, ypač kai šie DLL nebuvo iš programos kūrėjo. Pavyzdžiui, kai „Microsoft“ atnaujina tam tikrus DLL .NET Framework, visos programos, kurios naudoja tuos DLL, gali iš karto pasinaudoti atnaujinta sauga ar funkcionalumu.

    Atsisiųsti DLL gali būti pasenę

    Taigi, su šiek tiek supranta DLL pagal mūsų diržus, kodėl gi ne atsisiųsti juos iš interneto, kai vienas trūksta iš jūsų sistemos?

    Dažniausiai pasitaikanti problema, su kuria atsisiuntėte DLL, yra pasenusi. Daugelis ten esančių DLL svetainių gauna savo DLL, tiesiog įkeldami juos iš savo ar jų vartotojų kompiuterių. Jūs tikriausiai galite matyti šią problemą. Dauguma šių svetainių tik nori jūsų srauto, o kai bus įkeltas DLL, jie turi mažai paskatų užtikrinti, kad failas būtų nuolat atnaujinamas. Pridėkite prie to, kad pardavėjai paprastai neišleistų atnaujintų DLL failų visuomenei kaip atskiri failai, ir jūs galite pamatyti, kad net ir svetainės, kurios bandyti kad failai būtų atnaujinti, greičiausiai nebus labai sėkmingi.

    Taip pat yra ir kita problema, kad DLL yra paprastai integruoti į paketus. Vieno DLL paketo atnaujinimas dažnai pridedamas prie kitų to paties paketo DLL susijusių atnaujinimų, tai reiškia, kad net ir mažai tikėtinu atveju, kai gausite naujausią DLL failą, jūs negalite gauti susijusių failų, kurie taip pat atnaujinta.

    Atsisiunčiami DLL gali būti užkrėsti

    Nors mažiau paplitusi, galbūt daug blogesnė problema yra ta, kad DLL, kuriuos atsisiunčiate iš kitų šaltinių nei pardavėjas, kartais gali būti pakrautas su virusais ar kita kenkėjiška programa, kuri gali užkrėsti jūsų kompiuterį. Tai ypač pasakytina apie svetaines, kuriose nėra pernelyg atsargūs, kur jie gauna failus. Ir ne taip, kaip šios svetainės išeis iš savo kelio pasakyti apie savo rizikingus šaltinius. Iš tiesų baisu yra tai, kad jei atsisiunčiate užkrėstą DLL failą, galite rizikuoti dėl DLL failų, suteikiančių, kad failas giliau pasiekia nei įprastas užkrėstas failas, pobūdį..

    Geros naujienos čia yra tai, kad gera, realaus laiko antivirusinė programa paprastai gali aptikti šiuos užkrėstus DLL failus, kol jie iš tikrųjų išsaugomi jūsų sistemoje ir neleidžia jiems daryti jokios žalos. Vis dėlto reikia nepamiršti, kad net ir didelė antivirusinė programa gali suteikti jums nepriekaištingą apsaugą. Jei įprotį parsisiunčiate rizikingas rinkmenas, tikėtina, kad pasieksite jus. Geriausia tiesiog vengti šių DLL svetainių.

    Jie tikriausiai neišspręs jūsų problemos

    Nors yra įmanoma, kad tik vienas DLL failas jūsų kompiuteryje yra sugadintas arba ištrintas, tai labiau tikėtina, kad kiti DLL ar susiję programų failai taip pat yra sugadinti arba trūksta. Priežastis, kodėl gausite klaidą dėl vieno konkretaus failo, yra tai, kad tai pirmoji klaida, kai programa susidūrė prieš sudužimą, ir jūs tiesiog nesate informuotas apie likusią. Tai gali būti tiesa, nepaisant problemos priežasties.

    Kodėl DLL gali dingti arba sugadinti? Gali būti, kad kita klaidinga programa arba atnaujinimas bandė pakeisti failą ir nepavyko, arba jį pakeitė pasenusia kopija. Tai gali būti gedimas įdiegiant pagrindinę programą arba paketą, pvz., .NET. Gali būti, kad kietajame diske yra ir kitų probleminių blogų sektorių, kurie neleidžia failui teisingai įkelti.

    Kaip galima ištaisyti savo DLL klaidą?

    Vienintelis būdas užtikrinti, kad jūs gaunate stabilų, naujausią ir švarų DLL, yra gauti jį iš šaltinio, iš kurio jis buvo sukurtas. Paprastai šis šaltinis bus:

    • „Windows“ diegimo laikmena. Tai mažai tikėtina, kad galėsite paprasčiausiai kopijuoti DLL failą iš diegimo laikmenos, bet jūs turite greitą galimybę pabandyti prieš darant kažką drastiško, kaip iš naujo įjunkite „Windows“. Galite naudoti „Windows“ išteklių apsaugos įrankį (dažnai vadinamą sistemos failų tikrintuvu arba SFC), kuris „Windows“ sistemoje ieškos ir pašalins sugadintus arba trūkstamus sistemos failus. Įrenginio laikmeną turėtumėte naudoti patogiai, jei reikia, jei reikia kopijuoti failą iš ten. (Jei neturite diegimo disko, galite jį atsisiųsti čia.)
    • „Microsoft .NET Framework“ paketai. Kelios .NET versijos automatiškai įdiegiamos kartu su „Windows“, o daugelis programų taip pat įdiegia failus iš šių paketų. Galite perskaityti mūsų straipsnį apie .NET sistemą, kuri taip pat turi patarimų, kaip rasti ir taisyti susijusias problemas.
    • Įvairūs „Microsoft Visual C ++“ perskirstomi paketai. Priklausomai nuo naudojamų programų, jūsų kompiuteryje gali būti įdiegtos kelios „C ++ Redistributable“ versijos. Kartais gali būti sunku susiaurinti, kuris iš jų yra kaltininkas, bet gera vieta pradėti yra mūsų straipsnis apie „C ++ Redistributables“, kuriame taip pat yra keli trikčių šalinimo veiksmai ir nuorodos, kuriose galite atsisiųsti naujausias versijas tiesiai iš „Microsoft“.
    • Programa, kurioje buvo DLL. Jei DLL buvo įdiegtas kartu su programa, o ne kaip atskiro paketo dalis, geriausia yra įdiegti programą iš naujo. Kai kurios programos leidžia atlikti remontą vietoj pilno įdiegimo. Bet kuri parinktis turėtų veikti, nes remontas dažniausiai ieško trūkstamų failų diegimo aplankuose.

    Jei visa tai nepavyksta, galite susisiekti su programos pardavėju ir paprašyti atskiro DLL failo kopijos. Kai kurios įmonės yra atviros šiam prašymui; kai kurie ne. Jei paleisite į įmonę, kuri nepateiks atskirų failų, jie bent jau gali pasiūlyti kitus jūsų problemos sprendimo pasiūlymus.