Hvad er DLL-filer, og hvorfor mangler en fra min pc?

Når du får en fejl, der siger, at Windows ikke kunne finde en bestemt DLL-fil, kan det være frygteligt fristende at downloade filen fra en af ​​de mange DLL-sider derude. Her er hvorfor du ikke burde.

Hvad er DLL'er?

RELATERET: Hvad er rundll32.exe, og hvorfor kører det?

Før vi kommer i gang med, hvorfor du ikke skal downloade Dynamic Link Library (DLL) -filer fra internettet, skal vi først se på, hvad DLL-filer er. En DLL-fil er et bibliotek, der indeholder et sæt kode og data til udførelse af en bestemt aktivitet i Windows. Apps kan derefter kalde på disse DLL-filer, når de har brug for den aktivitet, der udføres. DLL-filer ligner meget eksekverbare (EXE) filer, bortset fra at DLL-filer ikke kan udføres direkte i Windows. Med andre ord kan du ikke dobbeltklikke på en DLL-fil for at køre den på samme måde som en EXE-fil. I stedet er DLL-filer designet til at blive kaldt af andre apps. Faktisk er de designet til at blive kaldt af flere apps på én gang. “Link” -delen af ​​DLL-navnet antyder også et andet vigtigt aspekt. Flere DLL'er kan knyttes sammen, så når en DLL kaldes,et antal andre DLL'er kaldes også på samme tid.

Windows bruger i sig selv omfattende DLL'er, som en rundvisning i C:\Windows\System32mappen kan fortælle dig. Som et eksempel på, hvad vi taler om, lad os overveje Windows-systemfilen “comdlg32.dll.” Denne fil, ellers kendt som Common Dialog Box Library, indeholder kode og data til opbygning af mange af de almindelige dialogbokse, du ser i Windows - dialoger til ting som at åbne filer, udskrive dokumenter osv. Instruktionerne i denne DLL håndterer alt fra at modtage og tolke meddelelser, der er beregnet til dialogboksen, til at specificere, hvordan dialogboksen ser ud på din skærm. Naturligvis kan flere apps kalde på denne DLL på samme tid, ellers ville du ikke kunne åbne en dialogboks (som den nedenfor) i mere end en app ad gangen.

DLL'er tillader, at kode moduleres og genbruges, hvilket betyder, at udviklere ikke behøver at bruge tid på at skrive kode fra bunden for at udføre verdslige eller almindelige funktioner. Og selvom udviklere opretter deres egne DLL'er, der skal installeres med deres apps, er langt størstedelen af ​​DLL'er, der kaldes af apps, faktisk samlet med Windows eller med ekstra pakker, som Microsoft .NET Framework eller Microsoft C ++ Redistributables. Den anden store fordel ved at modulere kode på denne måde er, at opdateringer er lettere at anvende på hver DLL snarere end på en hel app - især når disse DLL'er ikke kom fra udvikleren af ​​appen. For eksempel, når Microsoft opdaterer visse DLL'er i sin .NET Framework, kan alle apps, der bruger disse DLL'er, straks drage fordel af den opdaterede sikkerhed eller funktionalitet.

RELATERET: Hvad er Microsoft .NET Framework, og hvorfor installeres det på min pc?

Downloadede DLL'er kan være forældede

Så med en lille forståelse af DLL'er under vores bælter, hvorfor ikke downloade dem fra Internettet, når en mangler fra dit system?

Det mest almindelige problem, du støder på med downloadede DLL'er, er, at de er forældede. Mange af DLL-siderne derude får deres DLL'er ved blot at uploade dem fra deres egne - eller deres brugeres - computere. Du kan sandsynligvis allerede se problemet. De fleste af disse websteder vil bare have din trafik, og når en DLL er uploadet, har de lidt incitament til at sikre, at filen holdes opdateret. Tilføj til dette, at leverandører typisk ikke frigiver opdaterede DLL'er til offentligheden som individuelle filer, og du kan se, at selv websteder, der  forsøger at holde filer opdaterede, sandsynligvis ikke vil være meget succesrige.

Der er også det yderligere problem, at DLL'er normalt er integreret i pakker. En opdatering til en DLL i en pakke ledsages ofte af opdateringer til andre relaterede DLL'er i den samme pakke, hvilket betyder, at selv i det usandsynlige tilfælde at du får en opdateret DLL-fil, får du ikke relaterede filer, der også har blevet opdateret.

Downloadede DLL'er kan inficeres

Selvom det er mindre almindeligt, er et potentielt meget værre problem, at DLL'er, du downloader fra andre kilder end leverandøren, undertiden kan indlæses med vira eller anden malware, der kan inficere din pc. Dette gælder især på websteder, der ikke er for forsigtige med, hvor de får deres filer. Og det er ikke som om disse websteder vil gå ud af deres måde at fortælle dig om deres risikable kilder. Den virkelig skræmmende del er, at hvis du downloader en inficeret DLL-fil, risikerer du - i sagens natur af DLL-filer - at give filen dybere adgang, end en almindelig inficeret fil muligvis får.

RELATERET: Hvad er det bedste antivirusprogram til Windows 10? (Er Windows Defender god nok?)

Den gode nyhed her er, at en god antivirusapp i realtid normalt kan opdage disse inficerede DLL-filer, før de faktisk gemmes på dit system og forhindre dem i at gøre nogen skade. Alligevel skal du huske, at selv et stort antivirusprogram muligvis ikke giver dig perfekt beskyttelse. Hvis du har en vane med at downloade risikable filer, vil det sandsynligvis indhente dig på et eller andet tidspunkt. Det er bedst at bare undgå disse DLL-sider.

De løser sandsynligvis ikke dit problem alligevel

Selvom det er muligt, at kun en enkelt DLL-fil på din pc er blevet ødelagt eller slettet, er det mere sandsynligt, at andre DLL'er eller relaterede appfiler også er korrupte eller mangler. Årsagen til, at du får en fejl om en bestemt fil, er, at det er den første fejl, en app stødte på, før du styrtede ned, og du bliver simpelthen ikke underrettet om resten. Dette kan være sandt uanset årsagen til problemet.

RELATERET: Forklarede dårlige sektorer: Hvorfor harddiske får dårlige sektorer, og hvad du kan gøre ved det

Hvorfor mangler eller ødelægges DLL'er? Det kan være, at en anden vildfarende app eller opdatering forsøgte at erstatte filen og mislykkedes, eller erstattede den med en forældet kopi. Det kan være en fejl i installationen af ​​din hovedapp eller i en pakke som .NET. Det kan endda være, at du har et andet problem - som dårlige sektorer på din harddisk - der forhindrer filen i at indlæses korrekt.

Hvordan kan jeg rette min DLL-fejl?

Den eneste måde at sikre dig en stabil, opdateret og ren DLL er at få den gennem den kilde, hvorfra den stammer. Typisk vil denne kilde være:

RELATERET: Sådan scanner du (og retter) korrupte systemfiler i Windows

  • Dit Windows installationsmedie . Det er usandsynligt, at du blot kan kopiere en DLL-fil fra dit installationsmedie, men du har en hurtig mulighed for at prøve, før du gør noget så drastisk som at genindføre Windows. Du kan bruge Windows Resource Protection-værktøjet (ofte benævnt systemfilkontrolleren eller SFC), som scanner efter og retter korrupte eller manglende systemfiler i Windows. Du skal have dit installationsmedie praktisk, når du kører værktøjet, bare hvis det er nødvendigt at kopiere en fil derfra. (Hvis du ikke har en installationsdisk, kan du downloade en her.)
  • Microsoft .NET Framework-pakkerne . Flere versioner af .NET installeres automatisk sammen med Windows, og mange apps installerer også filer fra disse pakker. Du kan læse vores artikel om .NET framework, som også har nogle råd til at finde og reparere tilknyttede problemer.
  • Forskellige Microsoft Visual C ++ -distribuerbare pakker . Afhængigt af de apps, du bruger, kan du have flere versioner af C ++ Redistributable installeret på din pc. Det kan nogle gange være svært at indsnævre, hvilken der er synderen, men et godt sted at starte er vores artikel om C ++ Redistributables, som også indeholder flere fejlfindingstrin og links, hvor du kan downloade de mest opdaterede versioner direkte fra Microsoft.
  • Den app, som DLL kom med . Hvis DLL blev installeret sammen med en app i stedet for at være en del af en separat pakke, er dit bedste valg bare at geninstallere appen. Nogle apps giver dig mulighed for at udføre en reparation i stedet for en fuld geninstallation. Begge muligheder skal fungere, da en reparation typisk ser efter manglende filer i installationsmapperne.

Hvis alt dette mislykkes, kan du muligvis kontakte app-leverandøren og anmode om en kopi af en individuel DLL-fil. Nogle virksomheder er åbne for denne anmodning; nogle er det ikke. Hvis du løber ind i et firma, der ikke leverer individuelle filer, kan de i det mindste muligvis tilbyde andre forslag til løsning af dit problem.