Hvordan fikse DLL feil

Så snart et systemfeilvindu dukker opp foran deg og nevner en manglende DLL, oppstår spørsmålet umiddelbart: hva er en DLL-fil? Hvorfor trengs de?

DLL-filer er dynamiske biblioteker som ofte kalles av applikasjoner når de kjører. DLL-filer er et viktig element når det gjelder å redusere subtilitet i koden og forbedre ytelsen.

Personlige datamaskiner som kjører Windows-systemer, støter ofte på DLL-filfeil som fører til manglende evne til å kjøre noen programmer. Feilmeldinger vises med angivelse av at det mangler en spesifikk .DLL-fil. Problemet er løst fordi du trenger å finne den aktuelle filen på Internett for at programvaren skal begynne å fungere.

Alt om DLL-filer

På grunn av hvor mange det er og hvordan de brukes, er DLL-filer vanligvis hovedfokus for en betydelig andel av feilene som sees når du begynner, bruker og stenger av Windows. Å åpne en DLL-fil er imidlertid relativt sjelden, siden du aldri skal redigere en slik fil, og redigering i seg selv vil sannsynligvis føre til problemer med programmer og andre DLLer.

Koden i en DLL deles av alle prosessene som bruker DLL. Med andre ord opptar de et enkelt sted i det fysiske minnet, men er ikke i sidefilområdet. Positiv upartisk kode brukes ikke i Windows for DLL-filer fordi den flyttes ettersom den lastes inn for å fikse alle inngangsadressene på ledig plass i det forberedende minnekurset for å laste DLLer.

DLL-filer i gamle varianter av Windows

Eldre versjoner av Windows, der hver kjørende prosess okkuperte et enkelt, stort problemløsende område, trengte bare en kopi av DLL-koden for at alle funksjonene skulle fungere riktig.

Anta at spesifikke programmer eller kombinasjoner av programmer fra de nedlastede DLL-ene ikke har disse adressene gratis. Det ville da være nødvendig å lage en ekstra kopi av DLL-koden, ved å bruke et unikt sett med flyttbare inngangskoeffisienter. Når det fysiske minnet må gjenopprettes, må det tilbakestilles i den okkuperte kodeseksjonen og innholdet og raske omlastinger fra DLL-filen. En lignende arkitektonisk ide, som tillot GDI å laste inn helt forskjellige enhetsdrivere, tillot Windows å laste inn andre Windows-pakker og for at disse programmene kunne ringe API-er fra de delte USER- og GDI-bibliotekene.

På grunn av dette kan en DLL-fil gi bedrifter mer enn ett verktøy på samme tid. Hvis en avhengig DLL blir oppgradert til en mer moderne versjon, overskrevet med en eldre versjon, eller fjernet fra PCen, kan dette systemet som teller på DLL-filen kanskje ikke fungere fordi det burde. ActiveX-kontroller, kontrollpaneldata og enhetsdrivere er noe av Windows informasjon som Dynamic Link Libraries.

Noen velprøvde metoder for å fikse DLL-feil:

  • Bruk Windows Resource Protection Tool eller System File Checker (SFC).
  • Last ned manglende eller ødelagte DLL-filer og legg dem i systemmappen
  • Oppdater Microsoft Visual C ++ Redistribuerbar.
  • Oppdater Microsoft .NET Framework.
  • Installer problemprogrammet på nytt.
  • Be om en kopi av DLL-filer fra produsenten av applikasjonen.

Noe mer info om DLL-filer

Bundne kjørbare filer lastes noe raskere hvis de kjøres i den samme innstillingen som de hadde blitt kompilert for og nøyaktig den nøyaktige tiden hvis de kjøres i forskjellige omgivelser, så det er ingen ulempe for å binde importen. Forresten, alle vanlige Windows-formål er knyttet til DLLs 'system av deres respektive Windows-lansering.

Et utmerket alternativ til å binde en applikasjons import til målområdet er i løpet av installasjonen av verktøyet. Likevel endrer det kontrollsummen til den kjørbare filen, så det er ikke noe som kan oppnås med signerte programmer eller pakker som administreres av en konfigurasjonsadministrasjonsprogramvare som bruker kontrollsummer for å håndtere versjoner i filen. Etter hvert som nyere Windows-variasjoner har gått bort fra å ha monterte adresser for hvert lastet bibliotek, reduseres muligheten og verdien av å binde en kjørbar.

Mens de fleste dynamiske lenkebiblioteker avsluttes i filtypen .DLL, kan andre bruke .OCX, .CPL eller .DRV. Hvis bestemte kjørbare pakker komprimerer en DLL (f.eks. UPX), er alle kodeseksjonene merket som lese og skrive, og kan ikke deles. Les og skriv kodeseksjoner, veldig som ikke-offentlig kunnskapsseksjoner, er personlige for hver prosess.

Dermed bør ikke DLL-filer med delte kunnskapsdeler komprimeres hvis de er ment å brukes samtidig av flere pakker, siden hver programforekomst må bære kopien av DLL-en, noe som fører til forhøyet minneforbruk. Denne forestillingen om å øke arbeidssystemet fra et sett med dynamisk lastede biblioteker er en kjerneide for Windows som vedvarer fra og med 2015. DLL-er presenterer de vanlige fordelene med delte biblioteker, som ligner på modulærhet.