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

    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-steder derude. Her skal du ikke.

    Hvad er DLL'er?

    Før vi begynder på hvorfor du ikke burde downloade Dynamic Link Library (DLL) filer fra internettet, lad os først se på hvilke DLL-filer der 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 ringe til de DLL-filer, når de har brug for den udførte aktivitet. DLL-filer er meget som 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 indkaldt af andre apps. Faktisk er de designet til at blive indkaldt af flere apps på én gang. "Link" -delen af ​​DLL-navnet foreslår også et andet vigtigt aspekt. Flere DLL'er kan kobles sammen, så når en DLL kaldes, kaldes også en række andre DLL'er samtidig..

    Windows selv gør meget brug af DLL'er, som en tur gennem C: \ Windows \ System32 mappe 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 fælles dialogbokse, du ser i Windows-dialoger til ting som f.eks. Åbning af filer, udskrivning af dokumenter osv. Instruktionerne i denne DLL håndterer alt fra modtagelse og tolkning af meddelelser, der er beregnet til dialogboksen, for at angive, hvordan dialogboksen ser ud på skærmen. Selvfølgelig 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 gør det muligt for moduler at blive moduleret og genbrugt, hvilket betyder, at udviklere ikke skal bruge tid til at skrive kode fra bunden til at udføre dagligdags eller fælles funktioner. Og selv om udviklere vil oprette deres egne DLL'er til at installere med deres apps, er langt de fleste DLL'er, der kaldes af apps, faktisk pakket sammen med Windows eller med ekstra pakker, som Microsoft .NET Framework eller Microsoft C ++ Redistributables. Den anden store fordel ved modulariseringskoden på denne måde er, at opdateringer er nemmere at anvende på hver DLL end til 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 .NET Framework, kan alle apps, der bruger disse DLL'er, straks udnytte den opdaterede sikkerhed eller funktionalitet.

    Downloadede DLL'er kan være forældede

    Så med lidt forståelse af DLL'er under vores bælter, hvorfor ikke download dem fra internettet, når man mangler fra dit system?

    Det mest almindelige problem, du løber ind i med downloadede DLL'er, er, at de er forældede. Mange af DLLs-webstederne derude får deres DLL'er ved blot at uploade dem fra deres egne eller deres brugernes computere. Du kan sikkert se problemet allerede. De fleste af disse websteder vil bare have din trafik, og når en DLL er uploadet, har de ringe incitament til at sikre, at filen opdateres. 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 prøve For at holde filer ajourførte er det ikke sandsynligt, at de bliver meget succesfulde.

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

    Downloadede DLL'er kan inficeres

    Selv om det er mindre almindeligt, er et potentielt meget værre problem, at DLL'er du downloader fra andre kilder end sælgeren, kan i nogle tilfælde læses med virus 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, at disse websteder vil gå ud af deres måde at fortælle om deres risikable kilder. Den virkelig skræmmende del er, at hvis du downloader en inficeret DLL-fil, risikerer du - i sagens natur at DLL-filer - hvilket giver filen en dybere adgang end en regelmæssigt inficeret fil kan få.

    Den gode nyhed her er, at en god antivirusprogram i realtid normalt kan registrere 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 gør en vane med at downloade risikofyldte filer, vil det sandsynligvis komme i kontakt med dig på et eller andet tidspunkt. Det er bedst at bare undgå disse DLL-websteder.

    De vil sandsynligvis ikke løse dit problem alligevel

    Selvom det er muligt, at kun en enkelt DLL-fil på din pc er blevet beskadiget eller slettet, er det mere sandsynligt, at andre DLL'er eller relaterede app-filer 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 opdagede, før du styrter, og du bliver simpelthen ikke underrettet om resten. Dette kan være sandt uanset årsagen til problemet.

    Hvorfor kan DLL'er forsvinde eller blive beskadiget? Det kan være, at en anden fejlagtig app eller opdatering forsøgte at erstatte filen og mislykkedes, eller erstattet 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 andre problemlignende dårlige sektorer på harddisken, hvilket forhindrer filen i at indlæse korrekt.

    Hvordan kan jeg rette min DLL-fejl?

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

    • Dit Windows-installationsmedie. Det er usandsynligt, at du simpelthen 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 geninstallere Windows. Du kan bruge værktøjet Windows Resource Protection (ofte kaldet systemfil checker eller SFC), som vil scanne efter og reparere beskadigede eller manglende systemfiler i Windows. Du skal have din installationsmedie handy, 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-rammerne, som også indeholder nogle råd til at finde og reparere tilknyttede problemer.
    • Forskellige Microsoft Visual C ++ Redistributable 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 nyeste versioner lige fra Microsoft.
    • Appen, som DLL'en fulgte med. Hvis DLL'en blev installeret sammen med en app i stedet for at være en del af en separat pakke, er dit bedste bud bare at geninstallere appen. Nogle apps giver dig mulighed for at udføre en reparation i stedet for en fuld geninstallation. Enhver mulighed skal fungere, da en reparation typisk søger efter manglende filer i installationsmapperne.

    Hvis alt der fejler, kan du muligvis kontakte appleverandøren og anmode om en kopi af en individuel DLL-fil. Nogle virksomheder er åbne for denne anmodning; nogle er 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.