Als u een foutmelding krijgt dat Windows een bepaald DLL-bestand niet kon vinden, kan het erg verleidelijk zijn om het bestand te downloaden van een van de vele DLL-sites die er zijn. Dit is waarom je dat niet zou moeten doen.
Wat zijn DLL's?
VERWANT: Wat is rundll32.exe en waarom wordt het uitgevoerd?
Voordat we beginnen met waarom u geen Dynamic Link Library-bestanden (DLL) van internet moet downloaden, laten we eerst eens kijken wat DLL-bestanden zijn. Een DLL-bestand is een bibliotheek die een set code en gegevens bevat voor het uitvoeren van een bepaalde activiteit in Windows. Apps kunnen dan een beroep doen op die DLL-bestanden wanneer ze die activiteit nodig hebben. DLL-bestanden lijken veel op uitvoerbare bestanden (EXE), behalve dat DLL-bestanden niet rechtstreeks in Windows kunnen worden uitgevoerd. Met andere woorden, u kunt niet dubbelklikken op een DLL-bestand om het op dezelfde manier uit te voeren als een EXE-bestand. In plaats daarvan zijn DLL-bestanden ontworpen om door andere apps te worden aangeroepen. In feite zijn ze ontworpen om door meerdere apps tegelijk te worden aangeroepen. Het "link" -gedeelte van de DLL-naam suggereert ook een ander belangrijk aspect. Meerdere DLL's kunnen aan elkaar worden gekoppeld, zodat wanneer één DLL wordt aangeroepen, ook een aantal andere DLL's tegelijkertijd worden aangeroepen.
Windows zelf maakt veel gebruik van DLL's, zoals een rondleiding door het
C: \ Windows \ System32
map kan je vertellen. Laten we, als voorbeeld van waar we het over hebben, eens kijken naar het Windows-systeembestand 'comdlg32.dll'. Dit bestand, ook wel bekend als de Common Dialog Box Library, bevat code en gegevens voor het bouwen van veel van de algemene dialoogvensters die u in Windows ziet - dialoogvensters voor zaken als het openen van bestanden, het afdrukken van documenten, enzovoort. De instructies in deze DLL behandelen alles, van het ontvangen en interpreteren van berichten bedoeld voor het dialoogvenster tot het specificeren hoe het dialoogvenster eruitziet op uw scherm. Het is duidelijk dat meerdere apps deze DLL tegelijkertijd kunnen aanroepen, anders zou u niet in staat zijn om een dialoogvenster (zoals hieronder) in meer dan één app tegelijk te openen.
Met DLL's kan code worden gemodulariseerd en hergebruikt, wat betekent dat ontwikkelaars geen tijd hoeven te besteden aan het schrijven van nieuwe code om alledaagse of gewone functies uit te voeren. En hoewel ontwikkelaars hun eigen DLL's zullen maken om met hun apps te installeren, wordt de overgrote meerderheid van DLL's die door apps worden aangeroepen, daadwerkelijk gebundeld met Windows of met extra pakketten, zoals de Microsoft. NET framework of Microsoft C ++ Redistributables . Het andere grote voordeel van het op deze manier modulariseren van code is dat updates gemakkelijker op elke DLL kunnen worden toegepast in plaats van op een hele app, vooral als die DLL's niet afkomstig zijn van de ontwikkelaar van de app. Wanneer Microsoft bijvoorbeeld bepaalde DLL's in zijn .NET Framework bijwerkt, kunnen alle apps die deze DLL's gebruiken onmiddellijk profiteren van de bijgewerkte beveiliging of functionaliteit.
VERWANT: Wat is Microsoft .NET Framework en waarom is het op mijn pc geïnstalleerd?
Gedownloade DLL's zijn mogelijk verouderd
Dus, met een beetje begrip van DLL's onder onze riem, waarom zou u ze niet van internet downloaden als er een ontbreekt op uw systeem?
Het meest voorkomende probleem dat u tegenkomt met gedownloade DLL's is dat ze verouderd zijn. Veel van de DLL-sites die er zijn, krijgen hun DLL's door ze gewoon te uploaden vanaf hun eigen computer (of die van die van gebruikers). U kunt het probleem waarschijnlijk al zien. De meeste van deze sites willen gewoon uw verkeer en zodra een DLL-bestand is geüpload, hebben ze weinig reden om ervoor te zorgen dat het bestand up-to-date wordt gehouden. Voeg hieraan toe dat leveranciers bijgewerkte DLL's doorgaans niet als afzonderlijke bestanden aan het publiek vrijgeven, en u kunt zien dat zelfs sites die proberen om bestanden up-to-date te houden, zal waarschijnlijk niet erg succesvol zijn.
Er is ook een ander probleem dat DLL's meestal in pakketten worden geïntegreerd. Een update naar één DLL in een pakket gaat vaak gepaard met updates naar andere, gerelateerde DLL's in hetzelfde pakket, wat betekent dat zelfs in het onwaarschijnlijke geval dat u een up-to-date DLL-bestand krijgt, u geen gerelateerde bestanden krijgt die ook is bijgewerkt.
Gedownloade DLL's kunnen worden geïnfecteerd
Hoewel het minder vaak voorkomt, is een potentieel veel erger probleem dat DLL's die u downloadt van andere bronnen dan de leverancier, soms kunnen worden geladen met virussen of andere malware die uw pc kunnen infecteren. Dit geldt met name voor sites die niet al te voorzichtig zijn met waar ze hun bestanden vandaan halen. En het is niet zo dat die sites hun best doen om u over hun risicovolle bronnen te vertellen. Het echt beangstigende is dat als je een geïnfecteerd DLL-bestand downloadt, je het risico loopt - door de aard van DLL-bestanden - om dat bestand diepere toegang te geven dan een gewoon geïnfecteerd bestand zou kunnen krijgen.
VERWANT: Wat is de beste antivirus voor Windows 10? (Is Windows Defender goed genoeg?)
Het goede nieuws hier is dat a goede, real-time antivirus-app kan deze geïnfecteerde DLL-bestanden meestal detecteren voordat ze daadwerkelijk op uw systeem zijn opgeslagen en voorkomen dat ze schade aanrichten. Toch moet u niet vergeten dat zelfs een geweldig antivirusprogramma u misschien geen perfecte bescherming biedt. Als u er een gewoonte van maakt om risicovolle bestanden te downloaden, zal dit u op een gegeven moment waarschijnlijk inhalen. Het is het beste om deze DLL-sites gewoon te vermijden.
Ze zullen uw probleem waarschijnlijk toch niet oplossen
Hoewel het mogelijk is dat slechts één DLL-bestand op uw pc beschadigd of verwijderd is, is de kans groter dat andere DLL's of gerelateerde app-bestanden ook beschadigd zijn of ontbreken. De reden dat u een foutmelding krijgt over een bepaald bestand, is dat het de eerste fout is die een app tegenkwam voordat deze crashte en dat u simpelweg niet op de hoogte wordt gesteld van de rest. Dit kan waar zijn, ongeacht de oorzaak van het probleem.
VERWANT: Slechte sectoren uitgelegd: waarom harde schijven slechte sectoren krijgen en wat u eraan kunt doen
Waarom kunnen DLL's ontbreken of beschadigd raken? Het kan zijn dat een andere foutieve app of update heeft geprobeerd het bestand te vervangen en is mislukt, of het heeft vervangen door een verouderde kopie. Het kan een fout zijn in de installatie van uw hoofdapp of in een pakket zoals .NET. Het kan zelfs zijn dat u een ander probleem heeft, bijvoorbeeld slechte sectoren op uw harde schijf - die verhinderen dat het bestand correct wordt geladen.
Hoe kan ik mijn DLL-fout oplossen?
De enige manier om ervoor te zorgen dat u een stabiele, up-to-date en schone DLL krijgt, is door deze via de bron te krijgen waaruit deze afkomstig is. Meestal is die bron:
VERWANT: Scannen op (en repareren) corrupte systeembestanden in Windows
- Uw Windows-installatiemedia . Het is onwaarschijnlijk dat u eenvoudig een DLL-bestand van uw installatiemedia kunt kopiëren, maar u heeft wel een snelle optie om het te proberen voordat u zoiets drastisch doet als Windows opnieuw installeren. Jij kan gebruik het hulpprogramma Windows Resource Protection (vaak de systeembestandscontrole of SFC genoemd), die corrupte of ontbrekende systeembestanden in Windows zal scannen en herstellen. U moet uw installatiemedia bij de hand hebben wanneer u de tool uitvoert, voor het geval het een bestand van daaruit moet kopiëren. (Als u geen installatieschijf heeft, kunt u download er een hier .)
- De Microsoft .NET Framework-pakketten . Verschillende versies van .NET worden automatisch samen met Windows geïnstalleerd en veel apps installeren ook bestanden uit die pakketten. Jij kunt lezen ons artikel over het .NET-framework , die ook wat advies heeft voor het vinden en repareren van bijbehorende problemen.
- Diverse Microsoft Visual C ++ Redistributable-pakketten . Afhankelijk van de apps die u gebruikt, zijn er mogelijk meerdere versies van de C ++ Redistributable op uw pc geïnstalleerd. Het kan soms moeilijk zijn om te bepalen welke de schuldige is, maar een goede plek om te beginnen is ons artikel over C ++ Redistributables , die ook verschillende stappen voor probleemoplossing en koppelingen bevat waar u de meest recente versies rechtstreeks van Microsoft kunt downloaden.
- De app waarmee de DLL is geleverd . Als de DLL samen met een app is geïnstalleerd in plaats van deel uit te maken van een apart pakket, kun je het beste de app gewoon opnieuw installeren. Bij sommige apps kunt u een reparatie uitvoeren in plaats van een volledige herinstallatie. Beide opties zouden moeten werken, aangezien een reparatie doorgaans zoekt naar ontbrekende bestanden in de installatiemappen.
Als dat allemaal niet lukt, kunt u mogelijk contact opnemen met de app-leverancier en een kopie van een individueel DLL-bestand aanvragen. Sommige bedrijven staan open voor dit verzoek; sommige zijn dat niet. Als u een bedrijf tegenkomt dat geen afzonderlijke bestanden levert, kunnen zij in ieder geval andere suggesties doen om uw probleem op te lossen.