Hva er DLL-filer, og hvorfor mangler en fra min PC?
Når du får en feil som sier at Windows ikke kunne finne en bestemt DLL-fil, kan det være veldig fristende å laste ned filen fra en av de mange DLL-sidene der ute. Her er hvorfor du ikke burde det.
Hva er DLLs?
Før vi begynner på hvorfor du ikke bør laste ned Dynamic Link Library-filer (DLL) fra Internett, la oss først se på hvilke DLL-filer som er. En DLL-fil er et bibliotek som inneholder et sett med kode og data for å utføre en bestemt aktivitet i Windows. Apper kan deretter ringe på disse DLL-filene når de trenger den aktiviteten som utføres. DLL-filer er mye som kjørbare (EXE) -filer, bortsett fra at DLL-filer ikke kan kjøres direkte i Windows. Med andre ord kan du ikke dobbeltklikke på en DLL-fil for å kjøre den på samme måte som du ville ha en EXE-fil. I stedet er DLL-filer designet for å bli påkalt av andre apper. Faktisk er de designet for å bli påkalt av flere apper samtidig. Den "link" delen av DLL-navnet foreslår også et annet viktig aspekt. Flere DLLer kan kobles sammen slik at når en DLL kalles, kalles også en rekke andre DLLs samtidig.
Windows selv gjør stor bruk av DLLer, som en tur gjennom C: \ Windows \ System32
mappen kan fortelle deg. Som et eksempel på hva vi snakker om, la oss vurdere Windows-systemfilen "comdlg32.dll." Denne filen, ellers kjent som Common Dialog Box Library, inneholder kode og data for å bygge mange av de vanlige dialogboksene du ser i Windows-dialoger for ting som å åpne filer, skrive ut dokumenter og så videre. Instruksjonene i denne DLL håndterer alt fra mottak og tolkning av meldinger som er ment for dialogboksen for å angi hvordan dialogboksen ser ut på skjermen. Åpenbart kan flere apper ringe på denne DLL samtidig, ellers ville du ikke kunne åpne en dialogboks (som den nedenfor) i mer enn en app om gangen.
DLLer tillater at kode blir modulert og gjenbrukt, noe som betyr at utviklere ikke trenger å bruke tid til å skrive kode fra grunnen til å utføre verdslige eller vanlige funksjoner. Og selv om utviklere vil lage sine egne DLLer for å installere med sine apper, er det store flertallet av DLL-er som kalles av apps, faktisk pakket sammen med Windows eller med ekstra pakker, som Microsoft .NET Framework eller Microsoft C ++ Redistributables. Den andre store fordelen med modulariseringskoden på denne måten er at oppdateringer er enklere å søke på hver DLL enn til en hel app, spesielt når de DLL-er ikke kom fra utvikleren av appen. For eksempel, når Microsoft oppdaterer visse DLLer i .NET Framework, kan alle apper som bruker disse DLLene umiddelbart dra nytte av den oppdaterte sikkerheten eller funksjonaliteten.
Nedlastede DLL kan være utdatert
Så, med litt forståelse av DLLer under våre belter, hvorfor ikke laste dem ned fra Internett når en mangler fra systemet ditt?
Det vanligste problemet du får inn i nedlastede DLLer er at de er utdaterte. Mange av DLLs-webområdene der ute, får sine DLLer ved bare å laste dem opp fra sine egne eller deres brukernes datamaskiner. Du kan sikkert se problemet allerede. De fleste av disse nettstedene vil bare ha trafikk, og når en DLL er lastet opp, har de lite insentiv for å sikre at filen holdes oppdatert. Legg til i dette at leverandørene vanligvis ikke løser oppdaterte DLLer til offentligheten som individuelle filer, og du kan se at selv nettsteder som prøve Å holde filer oppdatert er ikke sannsynlig å være veldig vellykket.
Det er også det ytterligere problemet at DLLer vanligvis er integrert i pakker. En oppdatering til en DLL i en pakke følger ofte med oppdateringer til andre relaterte DLLer i samme pakke, noe som betyr at selv om du ikke får en oppdatert DLL-fil, vil du ikke få relaterte filer som også har blitt oppdatert.
Nedlastede DLL kan bli infisert
Selv om det er mindre vanlig, er et potensielt mye verre problem at DLLer du laster ned fra andre kilder enn leverandøren noen ganger kan lastes med virus eller annen skadelig programvare som kan infisere PCen din. Dette gjelder spesielt på nettsteder som ikke er for forsiktig med hvor de får filene sine. Og det er ikke som disse nettstedene kommer til å gå ut av deres måte å fortelle deg om deres risikable kilder. Den virkelig skummelt er at hvis du laster ned en infisert DLL-fil, risikerer du - av selve arten av DLL-filer - å gi den filen dypere tilgang enn en vanlig infisert fil kan få.
Den gode nyheten her er at en god antivirusprogram i sanntid vanligvis kan oppdage disse infiserte DLL-filene før de faktisk er lagret i systemet ditt og hindre dem i å skade. Likevel må du huske at selv et godt antivirusprogram kanskje ikke gir deg perfekt beskyttelse. Hvis du gjør en vane med å laste ned risikofyldte filer, er det sannsynlig å hente deg på et tidspunkt. Det er best å bare unngå disse DLL-nettstedene.
De vil nok ikke løse problemet ditt uansett
Selv om det er mulig at bare en enkelt DLL-fil på PCen har blitt skadet eller slettet, er det mer sannsynlig at andre DLLer eller relaterte appfiler også er korrupte eller mangler. Grunnen til at du får en feil om en bestemt fil er at det er den første feilen en app oppstod før krasj, og du blir bare ikke underrettet om resten. Dette kan være sant uansett årsaken til problemet.
Hvorfor kan DLLs gå glipp av eller korrupte? Det kan være at en annen feilaktig app eller oppdatering prøvde å erstatte filen og mislyktes, eller erstattet den med en utdatert kopi. Det kan være en feil i installasjonen av hovedapplikasjonen eller i en pakke som .NET. Det kan til og med være at du har en annen problemaktig dårlig sektor på harddisken din, som forhindrer at filen lastes inn riktig.
Hvordan kan jeg fikse DLL-feilen min??
Den eneste måten å sikre at du får en stabil, oppdatert og ren DLL, er å få den gjennom kilden som den oppsto fra. Vanligvis vil denne kilden være:
- Windows installasjonsmedia. Det er usannsynlig at du bare kan kopiere en DLL-fil fra installasjonsmediet ditt, men du har et raskt alternativ å prøve før du gjør noe så drastisk som å gjenopprette Windows. Du kan bruke Windows Resource Protection-verktøyet (ofte referert til som systemfilkontrolleren eller SFC), som vil skanne etter og fikse korrupte eller manglende systemfiler i Windows. Du bør ha installasjonsmedia hendig når du kjører verktøyet, bare hvis du trenger å kopiere en fil derfra. (Hvis du ikke har en installasjonsplate, kan du laste ned en her.)
- Microsoft. NET Framework-pakker. Flere versjoner av .NET installeres automatisk sammen med Windows, og mange apps installerer også filer fra disse pakkene også. Du kan lese vår artikkel om .NET-rammen, som også har noen råd for å finne og reparere tilhørende problemer.
- Ulike Microsoft Visual C + + -fordelbare pakker. Avhengig av appene du bruker, kan du ha flere versjoner av C ++ Redistributable installert på PCen. Det kan noen ganger være vanskelig å begrense hvilken som er skyldig, men et godt sted å starte er vår artikkel om C ++ Redistributables, som også inneholder flere feilsøkingstrinn og koblinger der du kan laste ned de nyeste versjonene rett fra Microsoft.
- Appen som DLL kom med. Hvis DLL ble installert sammen med en app i stedet for å være en del av en separat pakke, er det beste alternativet å bare installere appen på nytt. Noen apper tillater deg å utføre en reparasjon i stedet for en fullstendig installasjon. Enten alternativet bør fungere, siden en reparasjon vanligvis ser etter manglende filer i installasjonsmappene.
Hvis alt som feiler, kan du kanskje kontakte appleverandøren og be om en kopi av en individuell DLL-fil. Noen selskaper er åpne for denne forespørselen; noen er ikke. Hvis du går inn i et selskap som ikke vil levere individuelle filer, kan de i det minste tilby andre forslag til å løse problemet.