Koduleht » kuidas » Mis on DLL-failid ja miks minu arvutist puudub?

    Mis on DLL-failid ja miks minu arvutist puudub?

    Kui teil tekib viga, mis ütleb, et Windows ei leia konkreetset DLL-faili, võib see olla kohutavalt ahvatlev faili alla laadida ühest paljudest DLL-saitidest. Siin on põhjus, miks sa ei peaks.

    Mis on DLL?

    Enne kui alustame, miks ei tohiks Dynamic Link Library (DLL) faile Internetist alla laadida, vaadake kõigepealt, millised DLL-failid on. DLL-fail on raamatukogu, mis sisaldab koodide ja andmete komplekti konkreetse tegevuse teostamiseks Windowsis. Seejärel saavad rakendused neid DLL-faile helistada, kui nad seda tegevust vajavad. DLL-failid on palju nagu käivitatavad (EXE) -failid, välja arvatud see, et DLL-faile ei saa Windowsis otse teostada. Teisisõnu, te ei saa DLL-faili kaks korda klõpsata, et seda samal viisil nagu EXE-fail. Selle asemel on DLL-failid mõeldud kasutamiseks teiste rakenduste poolt. Tegelikult on need loodud selleks, et mitu rakendust korraga kutsuda. DLL-i nime „link” osutab ka teisele olulisele aspektile. Mitmeid DLL-sid saab omavahel seostada nii, et kui üks DLL on kutsutud, kutsutakse samal ajal ka mitmeid teisi DLL-e.

    Windows ise kasutab DLL-sid ulatuslikult C: Windows System32 kausta saab teile öelda. Näitena sellest, mida me räägime, vaatleme Windowsi süsteemifaili „comdlg32.dll”. See fail, mida tuntakse ka ühise dialoogiboksi teegina, sisaldab koodi ja andmeid paljude ühiste dialoogibokside loomiseks, mida näete Windowsi dialoogid selliste asjade jaoks nagu failide avamine, dokumentide printimine jne. Selle DLL-i juhised käsitlevad kõike alates dialoogikastile mõeldud sõnumite vastuvõtmisest ja tõlgendamisest, et määrata, kuidas dialoogiboks kuvab ekraanil. Ilmselgelt saab mitu DLL-i samaaegselt DLL-i helistada, vastasel juhul ei saa te enam avada dialoogiboksi (nagu allpool) rohkem kui ühes rakenduses korraga.

    DLL-id võimaldavad koodi modulariseerimist ja taaskasutamist, mis tähendab, et arendajad ei pea igapäevaste või ühiste funktsioonide tegemiseks aega kirjutama. Ja kuigi arendajad loovad oma rakendustega oma DLL-id, on enamik rakenduste poolt kutsutud DLL-idest tegelikult Windowsiga või täiendavate pakettidega, nagu Microsoft .NET Framework või Microsoft C ++ Redistributables. Teine suur modulaarsuse koodi eelis on see, et uuendused on lihtsamad iga DLL-i asemel, mitte kogu rakendusele, eriti kui need DLL-id ei tulnud rakenduse arendajalt. Näiteks, kui Microsoft värskendab teatud DLL-sid oma .NET-i raamistikus, saavad kõik need DLL-i kasutavad rakendused kohe uuendatud turvalisuse või funktsionaalsuse ära kasutada.

    Allalaaditud DLL-id võivad olla aegunud

    Niisiis, miks meie vööde all mõnevõrra mõista DLL-e, siis miks mitte neid Internetist alla laadida, kui teie süsteemist puudub?

    Kõige tavalisem probleem, mida saate alla laadida allalaaditud DLL-idega, on see, et need on aegunud. Paljud seal asuvad DLL-saidid saavad oma DLL-id, laadides need lihtsalt oma või oma kasutajaarvutitest. Ilmselt näete probleemi juba. Enamik neist saitidest tahavad lihtsalt teie liiklust ja kui DLL on üles laaditud, on neil vähe stiimulit, et tagada faili ajakohasus. Lisage sellele, et müüjad ei vabasta tavaliselt uuendatud DLL-e avalikkusele üksikute failidena ja näete, et isegi saidid, kes proovige failide ajakohastamine ei ole tõenäoliselt väga edukas.

    Samuti on probleemiks see, et DLL-id on tavaliselt pakettidesse integreeritud. Paketi ühe DLL-i värskendus kaasneb sageli sama paketi teiste seotud DLL-ide värskendamisega, mis tähendab, et isegi ebatõenäolisel juhul, kui sa saad ajakohase DLL-faili, ei saa te sellega seotud faile, mis on ka uuendatud.

    Allalaaditud DLL-id võivad olla nakatunud

    Kuigi vähem levinud, võib potentsiaalselt palju hullemaks probleemiks olla see, et muudest allikatest kui müüjast allalaaditud DLL-id võivad mõnikord olla täis viirusi või muud pahavara, mis võib teie arvutit nakatada. See kehtib eriti saitide kohta, mis ei ole liiga ettevaatlikud, kus nad oma faile saavad. Ja see ei ole nagu need saidid lähevad välja oma viisist, et rääkida oma riskantsetest allikatest. Tõesti hirmutav osa on see, et kui sa laadid nakatunud DLL-faili alla, siis võib teie DLL-failide olemuse tõttu risk, et fail on sügavam juurdepääs kui tavalisel nakatunud failil, saada.

    Hea uudis on see, et hea reaalajas viirusetõrje rakendus võib tavaliselt tuvastada need nakatunud DLL-failid enne, kui nad tegelikult teie süsteemi salvestatakse ja takistavad neil mingit kahju tekitada. Siiski peate meeles pidama, et isegi suur viirusetõrjeprogramm ei pruugi teile täiuslikku kaitset pakkuda. Kui teete harjumuspäraselt riskantsete failide allalaadimise, on tõenäoline, et jõuad sinuga mingil hetkel järele. See on kõige parem lihtsalt vältida neid DLL saite.

    Nad tõenäoliselt ei lahenda teie probleemi

    Kuigi on võimalik, et ainult üks arvutis olev DLL-fail on rikutud või kustutatud, on tõenäolisem, et ka teised DLL-id või nendega seotud rakenduste failid on rikutud või puuduvad. Põhjus, miks te saate ühe faili kohta vea, on see, et see on esimene viga, mis rakenduses enne krahhist tekkis ja mida te lihtsalt ei teavitata. See võib olla tõsi, sõltumata probleemi põhjusest.

    Miks võivad DLLd kaduda või rikutud? Võib juhtuda, et teine ​​eksitav rakendus või värskendus üritas faili asendada ja ebaõnnestus või asendas selle vananenud koopiaga. See võib olla viga teie peamise rakenduse paigaldamisel või paketis nagu .NET. Võib juhtuda, et teie kõvakettal on veel üks probleemipõhine halb sektor, mis takistab faili õiget laadimist.

    Kuidas ma saan oma DLL-i vea parandada?

    Ainus viis, kuidas tagada stabiilne, ajakohane ja puhas DLL, on saada see allikast, kust see pärineb. Tavaliselt on see allikas:

    • Teie Windowsi installikandja. On ebatõenäoline, et saate lihtsalt DLL-faili kopeerida oma installikandjalt, kuid teil on kiire võimalus proovida enne, kui teete midagi nii drastilist kui Windowsi taasalustamine. Võite kasutada Windowsi ressursside kaitsmise tööriista (mida sageli nimetatakse süsteemi failikontrolliks või SFC-ks), mis otsib ja parandab Windowsis rikutud või puuduvad süsteemifailid. Teie tööriista käivitamisel peaksite oma installikandjat käepärast tegema, kui selleks on vaja kopeerida fail sealt. (Kui teil pole installiketta, saate selle alla laadida.)
    • Microsoft .NET Frameworki paketid. Mitmed .NET-i versioonid installitakse automaatselt koos Windowsiga ning paljud rakendused paigaldavad ka need paketid. Võite lugeda meie artiklit .NET-raamistiku kohta, millel on ka mõned nõuanded seotud probleemide leidmiseks ja parandamiseks.
    • Erinevad Microsoft Visual C ++ ümberjaotatavad paketid. Sõltuvalt kasutatavatest rakendustest võidakse arvutisse installida mitu C ++ Redistributable'i versiooni. Mõnikord võib olla raske kitsendada, milline neist on süüdlane, kuid hea koht alustamiseks on meie artikkel C ++ Redistributables, mis sisaldab ka mitmeid veaotsingu samme ja linke, kus saate alla laadida kõige värskemad versioonid otse Microsoftilt.
    • Rakendus, millega DLL kaasas. Kui DLL on installitud koos rakendusega, mitte eraldi paketi osana, on teie parim valik lihtsalt rakenduse uuesti installimine. Mõned rakendused võimaldavad teil täieliku uuesti installimise asemel remonti teha. Mõlemad võimalused peaksid töötama, kuna remont otsib tavaliselt puuduvaid faile installi kaustades.

    Kui kõik ei õnnestu, võib teil olla võimalik appi müüjaga ühendust võtta ja taotleda üksiku DLL-faili koopiat. Mõned ettevõtted on sellele taotlusele avatud; mõned ei ole. Kui teil tekib ettevõte, mis ei paku üksikuid faile, võivad nad vähemalt pakkuda teie probleemi lahendamiseks muid soovitusi.