Mitä ovat DLL-tiedostot ja miksi tietokoneesta puuttuu?
Kun saat virheilmoituksen, jonka mukaan Windows ei löytänyt tiettyä DLL-tiedostoa, se voi olla hämmästyttävän houkuttelevaa ladata tiedosto yhdestä siellä olevista monista DLL-sivustoista. Siksi sinun ei pitäisi.
Mitä ovat DLL: t?
Ennen kuin aloitamme, miksi sinun ei pitäisi ladata Dynamic Link Library (DLL) -tiedostoja Internetistä, katsotaanpa ensin, mitä DLL-tiedostoja on. DLL-tiedosto on kirjasto, joka sisältää joukon koodia ja dataa tietyn toiminnon suorittamiseksi Windowsissa. Sovellukset voivat soittaa näihin DLL-tiedostoihin, kun he tarvitsevat kyseistä toimintaa. DLL-tiedostot ovat paljon kuin suoritettavat (EXE) -tiedostot, paitsi että DLL-tiedostoja ei voi suoraan suorittaa Windowsissa. Toisin sanoen, et voi kaksoisnapsauttaa DLL-tiedostoa sen suorittamiseksi samalla tavalla kuin EXE-tiedosto. Sen sijaan DLL-tiedostot on suunniteltu muille sovelluksille. Itse asiassa ne on suunniteltu niin, että useat sovellukset kutsuvat ne välittömästi. DLL-nimen "linkki" -osa viittaa myös toiseen tärkeään näkökohtaan. Useita DLL-tiedostoja voidaan yhdistää yhteen niin, että kun kutsutaan yhtä DLL-tiedostoa, kutsutaan samanaikaisesti myös useita muita DLL-tiedostoja.
Windows itse käyttää laajasti DLL-tiedostoja kiertueen kautta C: \ Windows \ System32
kansio voi kertoa. Esimerkkinä siitä, mitä puhumme, harkitsemme Windows-järjestelmätiedostoa ”comdlg32.dll”. Tämä tiedosto, joka tunnetaan myös nimellä Common Dialog Box Library, sisältää koodin ja tiedot monien yhteisten valintaikkunoiden luomiseksi Windows-valintaikkunat esimerkiksi tiedostojen avaamiseen, asiakirjojen tulostamiseen ja niin edelleen. Tämän DLL: n ohjeet käsittelevät kaiken valintaikkunaan tarkoitettujen viestien vastaanottamisesta ja tulkitsemisesta määrittelemään, miten valintaikkuna näyttää näytöllä. On selvää, että useat sovellukset voivat soittaa tähän DLL-tiedostoon samanaikaisesti, muuten et pysty avaamaan valintaikkunaa (kuten alla olevaa) useammassa kuin yhdessä sovelluksessa kerrallaan.
DLL-koodit mahdollistavat koodin modulaation ja uudelleenkäytön, joten kehittäjien ei tarvitse viettää aikaa koodin kirjoittamisesta tyhjästä, jotta se voi suorittaa arkisia tai yhteisiä toimintoja. Ja vaikka kehittäjät luovat omat DLL-ohjelmansa asennettaviksi sovellustensa kanssa, suurin osa sovellusten kutsumista käyttävistä DLL-tiedostoista on mukana Windowsissa tai ylimääräisissä paketeissa, kuten Microsoft .NET Frameworkissa tai Microsoft C ++ Redistributablesissa. Modularisointikoodin toinen suuri etu tällä tavalla on, että päivitykset ovat helpompia soveltaa kullekin DLL: lle eikä koko sovellukselle, varsinkin kun nämä DLL-tiedostot eivät ole sovelluksen kehittäjältä. Esimerkiksi, kun Microsoft päivittää tietyt DLL-tiedostot .NET Frameworkissa, kaikki kyseisiä DLL-tiedostoja käyttävät sovellukset voivat heti hyödyntää päivitettyä tietoturvaa tai toiminnallisuutta.
Ladatut DLL-tiedostot voivat olla vanhentuneita
Joten, mistä ei ymmärrä DLL-ohjelmia hihnojen alla, miksi et lataa niitä Internetistä, kun järjestelmä puuttuu?
Yleisin ongelma, jonka lataat ladatuilla DLL-tiedostoilla, on se, että ne ovat vanhentuneita. Monet DLL-sivustot saavat DLL-tiedostoja lataamalla ne vain omilta tai heidän tietokoneiltaan. Voit todennäköisesti nähdä ongelman jo. Useimmat näistä sivustoista haluavat vain liikennettäsi, ja kun DLL on ladattu, heillä ei ole mitään kannustinta varmistaa, että tiedosto pidetään ajan tasalla. Lisää siihen, että myyjät eivät yleensä julkaise päivitettyjä DLL-tiedostoja yleisölle yksittäisinä tiedostoina, ja voit nähdä, että jopa sivustot, jotka yrittää Tiedostojen pitäminen ajan tasalla ei todennäköisesti onnistu.
On myös toinen ongelma, että DLL: t on yleensä integroitu paketeihin. Yhden DLL-tiedoston päivitys paketissa on usein mukana samassa paketissa olevien muiden, niihin liittyvien DLL-tiedostojen päivittämisen kanssa, mikä tarkoittaa, että vaikka epätodennäköisessä tapauksessa saat ajantasaisen DLL-tiedoston, et saa vastaavia tiedostoja, joissa on myös päivitetty.
Ladatut DLL-tiedostot voivat tarttua
Vaikka vähemmän yleinen, mahdollisesti paljon pahempi ongelma on se, että muista lähteistä kuin myyjältä ladattavat DLL-tiedostot voidaan ladata joskus viruksilla tai muulla haittaohjelmalla, joka voi tartuttaa tietokoneesi. Tämä pätee erityisesti sivustoihin, jotka eivät ole liian varovaisia, jos he saavat tiedostojaan. Ja se ei ole kuin nämä sivustot tulevat menemään tiensä kertomaan sinulle riskialttiista lähteistään. Todella pelottava osa on, että jos lataat tartunnan saaneen DLL-tiedoston, riski, että DLL-tiedostot antavat tiedostolle syvemmän pääsyn kuin tavallinen tartunnan saanut tiedosto, voivat saada.
Hyvä uutinen tässä on, että hyvä, reaaliaikainen virustorjuntaohjelma tunnistaa yleensä nämä tartunnan saaneet DLL-tiedostot ennen kuin ne todella tallennetaan järjestelmään ja estävät heitä tekemästä mitään vahinkoa. On kuitenkin muistettava, että jopa loistava virustentorjuntaohjelma ei ehkä tarjoa täydellistä suojaa. Jos teet tapana ladata riskialtisia tiedostoja, on todennäköisesti kiinni sinusta jossain vaiheessa. On parasta vain välttää nämä DLL-sivustot.
He eivät todennäköisesti ratkaise ongelmaa
Vaikka on mahdollista, että vain yksi DLL-tiedosto tietokoneessasi on vioittunut tai poistettu, on todennäköisempää, että myös muut DLL- tai siihen liittyvät sovellustiedostot ovat vioittuneet tai puuttuvat. Syy, miksi saat virheen yhdestä tietystä tiedostosta, on se, että se on ensimmäinen virhe, jonka sovellus on kohdannut ennen kaatumista, ja et yksinkertaisesti ole ilmoitettu muusta. Tämä voi olla totta riippumatta ongelman syystä.
Miksi DLL-tiedostot voivat kadota tai vioittua? Saattaa olla, että toinen virheellinen sovellus tai päivitys yritti korvata tiedoston ja epäonnistui tai korvasi sen vanhentuneella kopiolla. Se voi olla vika pääohjelmasi asennuksessa tai paketissa, kuten .NET. Saattaa jopa olla, että kiintolevylläsi on toinen ongelmaongelmainen sektori, joka estää tiedoston latautumisen oikein.
Miten voin korjata DLL-virheen?
Ainoa tapa varmistaa, että saat vakaan, ajantasaisen ja puhtaan DLL: n, on saada se lähteestä, josta se on peräisin. Tyypillisesti kyseinen lähde on:
- Windowsin asennuslevy. On epätodennäköistä, että voit yksinkertaisesti kopioida DLL-tiedoston asennusvälineestäsi, mutta sinulla on nopea vaihtoehto kokeilla ennen kuin teet jotain niin drastista kuin Windowsin uudelleen käyttöönotto. Voit käyttää Windows Resource Protection -työkalua (jota kutsutaan usein järjestelmän tiedostotarkistimeksi tai SFC), joka etsii ja korjaa korruptoituneita tai puuttuvia järjestelmätiedostoja Windowsissa. Sinun pitäisi olla asennustietoväline kätevä työkalua käytettäessä vain siinä tapauksessa, että se tarvitsee kopioida tiedoston sieltä. (Jos sinulla ei ole asennuslevyä, voit ladata sen täältä.)
- Microsoft .NET Framework -paketit. Useat .NET-versiot asennetaan automaattisesti Windowsin mukana, ja monet sovellukset asentavat myös tiedostoja myös näistä paketeista. Voit lukea artikkelimme .NET-kehyksestä, jossa on myös neuvoja siihen liittyvien ongelmien löytämiseksi ja korjaamiseksi.
- Erilaisia Microsoft Visual C ++ -jakelutettavia paketteja. Käytettävistä sovelluksista riippuen tietokoneessasi voi olla useita C ++ Redistributable -ohjelman versioita. Toisinaan voi olla vaikeaa kaventaa, mikä on syyllinen, mutta hyvä alku on C ++ Redistributables -tuotteen artikkeli, jossa on myös useita vianmääritysvaiheita ja linkkejä, joissa voit ladata uusimmat versiot suoraan Microsoftilta.
- Sovellus, johon DLL tuli. Jos DLL on asennettu sovelluksen ohella sen sijaan, että se olisi osa erillistä pakettia, sinun kannattaa vain asentaa sovellus uudelleen. Jotkin sovellukset mahdollistavat korjauksen täydellisen uudelleenasennuksen sijaan. Kummankin vaihtoehdon pitäisi toimia, koska korjaus etsii yleensä puuttuvia tiedostoja asennuskansioista.
Jos kaikki epäonnistuu, voit ehkä ottaa yhteyttä sovelluksen myyjään ja pyytää kopiota yksittäisestä DLL-tiedostosta. Jotkut yritykset ovat avoin tähän pyyntöön; jotkut eivät. Jos käytät yritystä, joka ei tarjoa yksittäisiä tiedostoja, he voivat ainakin tarjota muita ehdotuksia ongelman ratkaisemiseksi.