Mis on DLL-failid ja miks üks minu arvutist puudub?

Kui kuvatakse viga, öeldes, et Windows ei suutnud konkreetset DLL-faili leida, võib faili allalaadimine ühelt paljudest seal olevatest DLL-saitidest olla kohutavalt ahvatlev. Siin on põhjus, miks te ei peaks.

Mis on DLL-id?

SEOTUD:Mis on rundll32.exe ja miks see töötab?

Enne kui alustame, miks te ei tohiks Internetist dünaamiliste linkide kogu (DLL) faile alla laadida, vaatame kõigepealt üle, mis on DLL-failid. DLL-fail on teek, mis sisaldab koodide ja andmete komplekti Windowsi konkreetse tegevuse teostamiseks. Seejärel saavad rakendused neid DLL-faile kasutada, kui nad vajavad seda tegevust. DLL-failid sarnanevad käivitatavate failidega (EXE), välja arvatud see, et DLL-faile ei saa Windowsis otse käivitada. Teisisõnu, te ei saa topeltklõpsata DLL-faili, et seda käivitada samamoodi nagu EXE-faili. Selle asemel on DLL-failid loodud teistele rakendustele helistamiseks. Tegelikult on need loodud mitme rakenduse korraga kutsumiseks. DLL-i nime linki osa viitab ka teisele olulisele aspektile. Mitu DLL-i saab omavahel siduda, nii et kui kutsutakse ühte DLL-i, kutsutakse samaaegselt ka mitmeid teisi DLL-e.

Windows ise kasutab laialdaselt DLL-e tuurina läbi C: \ Windows \ System32 kaust teile öelda. Vaatleme näiteks selle kohta, millest räägime, Windowsi süsteemifaili „comdlg32.dll”. See fail, muidu tuntud kui ühise dialoogiboksi teek, sisaldab koodi ja andmeid paljude Windowsi jaoks tavaliste dialoogibokside loomiseks - dialoogid näiteks failide avamiseks, dokumentide printimiseks jne. Selle DLL-i juhised käsitlevad kõike alates dialoogiboksile mõeldud sõnumite vastuvõtmisest ja tõlgendamisest kuni dialoogiboksi ekraanil kuvamise täpsustamiseni. Ilmselt saavad mitu rakendust seda DLL-i korraga kasutada, vastasel juhul ei saaks te dialoogiboksi (nagu allpool olevat) korraga avada rohkem kui ühes rakenduses.

DLL-id võimaldavad koodi moduleerida ja taaskasutada, mis tähendab, et arendajad ei pea igapäevaste või tavapäraste funktsioonide täitmiseks kulutama aega nullist koodi kirjutamisele. Ja kuigi arendajad loovad oma rakendustega installimiseks ise oma DLL-id, on valdav enamus rakenduste poolt kutsutud DLL-id tegelikult komplekteeritud Windowsi või lisapakettidega, näiteks Microsoft .NET Framework või Microsoft C ++ Redistributables. Koodi moduleerimise teine ​​suur eelis on see, et värskendusi on lihtsam rakendada igale DLL-ile, mitte kogu rakendusele, eriti kui need DLL-id ei tulnud rakenduse arendajalt. Näiteks kui Microsoft värskendab oma .NET Frameworkis teatud DLL-e, saavad kõik neid DLL-e kasutavad rakendused värskendatud turvalisust või funktsionaalsust kohe ära kasutada.

SEOTUD:Mis on Microsoft .NET Framework ja miks see minu arvutisse installitakse?

Allalaaditud DLL-failid võivad olla vananenud

Niisiis, kui mõistate natuke meie vöö all olevaid DLL-e, siis miks mitte alla laadida need Internetist, kui mõni teie süsteemist puudub?

Allalaaditud DLL-ide kõige tavalisem probleem on see, et need on vananenud. Paljud sealsed DLL-i saidid saavad oma DLL-id, laadides need lihtsalt üles oma arvutist. Tõenäoliselt näete probleemi juba. Enamik neist saitidest soovib lihtsalt teie liiklust ja kui DLL on üles laaditud, pole neil piisavalt stiimuleid, et tagada faili ajakohasus. Lisage sellele, et müüjad ei avalda värskendatud DLL-e tavaliselt üksikute failidena avalikkusele ja näete, et isegi saidid, kesproovige failide ajakohastamine pole tõenäoliselt eriti edukas.

Samuti on veel üks probleem, et DLL-id integreeritakse tavaliselt pakettidesse. Paketis oleva ühe DLL-i värskendusega kaasnevad sageli värskendused teistele samasse paketti kuuluvatele DLL-idele, mis tähendab, et isegi ebatõenäolisel juhul saate ajakohase DLL-faili, kuid te ei saa seotud faile, millel on ka värskendatud.

Allalaaditud DLL-faile saab nakatada

Kuigi see on vähem levinud, on potentsiaalselt palju hullem probleem see, et muudest allikatest kui hankija allalaaditavad DLL-failid võivad mõnikord olla laetud viiruste või muu pahavaraga, mis võivad teie arvutit nakatada. See kehtib eriti saitide kohta, mis pole oma failide hankimise suhtes liiga ettevaatlikud. Ja pole sugugi nii, et need saidid teevad endast parima, et teile oma riskantsetest allikatest rääkida. Tõesti õudne on see, et kui laadite alla nakatunud DLL-faili, siis riskite - DLL-failide olemuse tõttu - anda sellele failile sügavama juurdepääsu kui tavaline nakatunud fail.

SEOTUD:Mis on parim viirusetõrje Windows 10 jaoks? (Kas Windows Defender on piisavalt hea?)

Hea uudis on see, et hea reaalajas viirusetõrjerakendus suudab need nakatunud DLL-failid tavaliselt enne nende süsteemi salvestamist tuvastada ja takistada neil mingit kahju. Siiski peate meeles pidama, et isegi suurepärane viirusetõrjeprogramm ei pruugi teile täiuslikku kaitset pakkuda. Kui teil on kombeks riskantseid faile alla laadida, jõuab see teile tõenäoliselt ühel hetkel järele. Parem on neid DLL-saite lihtsalt vältida.

Tõenäoliselt ei lahenda nad teie probleemi nagunii

Kuigi on võimalik, et teie arvutis on rikutud või kustutatud ainult üks DLL-fail, on tõenäolisem, et ka teised DLL-id või seotud rakenduse failid on rikutud või puuduvad. Ühe konkreetse faili kohta saate vea põhjusel, et see on esimene viga, millega rakendus enne krahhi kokku puutus ja ülejäänud kohta lihtsalt ei teavitata teid. See võib tõele vastata, olenemata probleemi põhjusest.

SEOTUD:Halbade sektorite seletus: miks kõvakettad saavad halbu sektoreid ja mida saate sellega teha

Miks võivad DLL-id kaduda või olla rikutud? Võib juhtuda, et mõni teine ​​vale rakendus või värskendus üritas faili asendada ja ebaõnnestus või asendas selle aegunud koopiaga. See võib olla tõrge teie peamise rakenduse installimisel või sellises paketis nagu .NET. Võib juhtuda, et teil on mõni muu probleem - näiteks kõvaketta valed sektorid -, mis takistab faili õigesti laadimast.

Kuidas ma saan oma DLL-viga parandada?

Ainus viis stabiilse, ajakohase ja puhta DLL-i saamiseks on see hankida selle allika kaudu, kust see pärineb. Tavaliselt on see allikas:

SEOTUD:Kuidas otsida (ja parandada) rikutud süsteemifaile Windowsis

  • Teie Windowsi installikandja. On ebatõenäoline, et saate DLL-faili lihtsalt installikandjalt kopeerida, kuid teil on kiire võimalus proovida, enne kui teete midagi nii drastilist kui Windowsi uuesti installimine. Võite kasutada Windowsi ressursikaitse tööriista (mida sageli nimetatakse süsteemifailide kontrollimiseks või SFC-ks), mis otsib ja parandab Windowsi rikutud või puuduvad süsteemifailid. Tööriista käivitamisel peaks teie installikandja olema käepärast, igaks juhuks, kui see peab sealt faili kopeerima. (Kui teil pole installiplaati, saate selle siit alla laadida.)
  • Microsofti .NET Framework-i paketid. Mitmed .NET-i versioonid installitakse automaatselt koos Windowsiga ja paljud rakendused installivad ka nendest pakettidest faile. Võite lugeda meie artiklit .NET-raamistiku kohta, kus on ka nõuandeid seotud probleemide leidmiseks ja parandamiseks.
  • Erinevad Microsofti Visual C ++ ümberjagatavad paketid. Sõltuvalt kasutatavatest rakendustest võib teie arvutisse olla installitud C ++ Redistributable'i mitu versiooni. Mõnikord võib olla keeruline kitsendada, kumb on süüdlane, kuid hea koht alustamiseks on meie artikkel C ++ edasimüügivahendite kohta, mis sisaldab ka mitmeid tõrkeotsingu samme ja linke, kust saate kõige värskemad versioonid otse Microsofti alla laadida.
  • Rakendus, millega DLL kaasas oli. Kui DLL installiti koos rakendusega, mitte selle osana, et see oleks eraldi paketi osa, on parim lahendus lihtsalt rakenduse uuesti installimine. Mõni rakendus võimaldab teil täieliku uuesti installimise asemel remonti teha. Mõlemad valikud peaksid töötama, kuna remont otsib tavaliselt installikaustadest puuduvaid faile.

Kui see kõik ebaõnnestub, võite pöörduda rakenduse müüja poole ja taotleda üksiku DLL-faili koopiat. Mõned ettevõtted on selle taotluse suhtes avatud; mõned ei ole. Kui satute ettevõttesse, mis ei esita üksikuid faile, võib ta vähemalt pakkuda muid soovitusi teie probleemi lahendamiseks.