Hemsida » hur » Vad är DLL-filer, och varför saknas en från min dator?

    Vad är DLL-filer, och varför saknas en från min dator?

    När du får ett fel som säger att Windows inte kunde hitta en viss DLL-fil, kan det vara väldigt frestande att ladda ner filen från en av de många DLL-sidorna där ute. Det är därför du borde inte.

    Vad är DLLs?

    Innan vi börjar om varför du inte ska ladda ner Dynamic Link Library-filer (DLL) från Internet, låt oss först titta på vilka DLL-filer som är. En DLL-fil är ett bibliotek som innehåller en uppsättning kod och data för att utföra en viss aktivitet i Windows. Apps kan sedan ringa upp de DLL-filerna när de behöver den aktiviteten som utförs. DLL-filer är mycket som exekverbara (EXE) -filer, förutom att DLL-filer inte kan köras direkt i Windows. Med andra ord kan du inte dubbelklicka på en DLL-fil för att köra den på samma sätt som en EXE-fil. Istället är DLL-filer utformade för att kunna hämtas av andra appar. Faktum är att de är utformade för att bli inkallade av flera appar på en gång. Den "länk" delen av DLL-namnet föreslår också en annan viktig aspekt. Flera DLL kan kopplas samman så att när en DLL heter kallas också ett antal andra DLL-filer samtidigt.

    Windows använder sig extensivt av DLL, som en turné genom C: \ Windows \ System32 mappen kan berätta för dig. Som exempel på vad vi pratar om, låt oss överväga Windows-systemfilen "comdlg32.dll." Den här filen, som annars kallas Common Dialog Box Library, innehåller kod och data för att bygga upp många av de gemensamma dialogrutorna du ser i Windows-dialogrutor för saker som att öppna filer, skriva ut dokument, och så vidare. Instruktionerna i denna DLL hanterar allt från att ta emot och tolka meddelanden som är avsedda för dialogrutan för att ange hur dialogrutan ser ut på skärmen. Det är uppenbart att flera appar kan ringa på den här DLL samtidigt, annars skulle du inte kunna öppna en dialogruta (som den nedan) i mer än en app i taget.

    DLL: er gör att kod kan moduleras och återanvändas, vilket innebär att utvecklare inte behöver spendera tid på att skriva kod från början för att utföra vardagliga eller vanliga funktioner. Och även om utvecklare kommer att skapa egna DLL-filer för att installera med sina appar, är de flesta DLL-filer som heter Apper faktiskt buntade med Windows eller med extra paket, som Microsoft. NET Framework eller Microsoft C ++ Redistributables. Den andra stora fördelen med att modulera kod på detta sätt är att uppdateringar är enklare att tillämpa på varje DLL än för en hel app, särskilt när de DLL-filer inte kom från utvecklaren av appen. När Microsoft till exempel uppdaterar vissa DLL-filer i .NET Framework, kan alla appar som använder dessa DLL-filer omedelbart utnyttja den uppdaterade säkerheten eller funktionaliteten.

    Nedladdade DLL kan vara föråldrade

    Så, med lite förståelse av DLLs under våra bälten, varför inte ladda ner dem från Internet när en saknas från ditt system?

    Det vanligaste problemet som du stöter på med nedladdade DLL-filer är att de är föråldrade. Många av DLLs-sidorna där ute får sina DLL-filer genom att bara ladda upp dem från sina egna eller sina användares datorer. Du kan noga se problemet redan. De flesta av dessa webbplatser vill bara ha din trafik, och när en DLL har laddats upp, har de lite incitament att se till att filen hålls uppdaterad. Lägg till att säljarna normalt inte släpper uppdaterade DLL-filer till allmänheten som enskilda filer, och du kan se att även webbplatser som Prova För att hålla filer uppdaterade är det inte troligt att de blir mycket framgångsrika.

    Det finns också det ytterligare problemet att DLLs vanligtvis integreras i paket. En uppdatering till en DLL i ett paket följer ofta med uppdateringar till andra relaterade DLL i samma paket, vilket innebär att även om du inte får en uppdaterad DLL-fil, kommer du inte heller att få relaterade filer som också har uppdaterats.

    Nedladdade DLL kan infekteras

    Trots mindre vanligt är ett potentiellt mycket värre problem att DLL: er du hämtar från andra källor än att säljaren ibland kan laddas med virus eller annan skadlig kod som kan infektera din dator. Detta gäller särskilt på webbplatser som inte är för försiktiga om var de får sina filer. Och det är inte som att dessa webbplatser kommer att gå ut ur deras sätt att berätta om sina riskabla källor. Den väldigt läskiga delen är att om du laddar ner en infekterad DLL-fil riskerar du - av själva naturen att DLL-filer - ger filen en djupare åtkomst än en vanlig infekterad fil kan få.

    Den goda nyheten här är att en bra antivirusprogram i realtid normalt kan upptäcka dessa infekterade DLL-filer innan de faktiskt sparas i ditt system och förhindra att de gör skada. Ändå måste du komma ihåg att även ett bra antivirusprogram kanske inte ger dig perfekt skydd. Om du gör vana med att ladda ner riskfyllda filer, kommer det sannolikt att komma ikapp med dig vid någon tidpunkt. Det är bäst att bara undvika dessa DLL-webbplatser.

    De kommer nog inte att lösa ditt problem

    Även om det är möjligt att endast en enda DLL-fil på datorn har blivit skadad eller raderad, är det mer troligt att andra DLL-filer eller relaterade appfiler också är korrupta eller saknade. Anledningen till att du får ett fel om en viss fil är att det är det första felet en app stött på innan den kraschar och du helt enkelt inte får meddelas av resten. Detta kan vara sant oavsett orsaken till problemet.

    Varför kan DLLs saknas eller korrumperas? Det kan hända att en annan felaktig app eller uppdatering försökte ersätta filen och misslyckades, eller ersätta den med en föråldrad kopia. Det kan vara ett fel vid installationen av din huvudapp eller i ett paket som .NET. Det kan till och med vara att du har andra problem-liknande dåliga sektorer på hårddisken - som hindrar filen från att laddas korrekt.

    Hur kan jag fixa min DLL-fel?

    Det enda sättet att se till att du får en stabil, uppdaterad och ren DLL är att få den genom källan från vilken den härstammade. Vanligtvis kommer den källan att vara:

    • Din Windows installationsmedia. Det är osannolikt att du enkelt kan kopiera en DLL-fil från installationsmediet, men du har ett snabbt alternativ att försöka innan du gör något så drastiskt som att återställa Windows. Du kan använda verktyget Windows Resource Protection (ofta kallad systemfilkontrollen eller SFC), som kommer att söka efter och fixa korrupta eller saknade systemfiler i Windows. Du bör ha ditt installationsmedium praktiskt när du kör verktyget, bara om det behövs kopiera en fil därifrån. (Om du inte har en installationsskiva kan du ladda ner en här.)
    • Microsoft. NET Framework-paket. Flera versioner av .NET installeras automatiskt tillsammans med Windows, och många appar installerar också filer från de här paketen. Du kan läsa vår artikel om .NET-ramverket, som också har några råd för att hitta och reparera associerade problem.
    • Olika Microsoft Visual C + + -distribuerbara paket. Beroende på vilka appar du använder kan du ha flera versioner av C ++ Redistributable installerade på datorn. Det kan ibland vara svårt att begränsa vilken som är den skyldige, men ett bra ställe att börja är vår artikel om C ++ Redistributables, som också innehåller flera felsökningssteg och länkar där du kan hämta de senaste uppdateringarna direkt från Microsoft.
    • Appen som DLL kom med. Om DLL-enheten installerades tillsammans med en app istället för att vara en del av ett separat paket, är din bästa satsning bara att installera om appen. Vissa appar tillåter dig att utföra en reparation istället för en fullständig ominstallation. Endera alternativet bör fungera, eftersom en reparation vanligtvis söker efter saknade filer i installationsmapparna.

    Om allt som misslyckas kan du kontakta appleverantören och begära en kopia av en enskild DLL-fil. Vissa företag är öppna för denna begäran; vissa är inte Om du går in i ett företag som inte tillhandahåller enskilda filer, kan de åtminstone kunna erbjuda andra förslag för att lösa ditt problem.