Was sind DLL-Dateien und warum fehlt eine auf meinem PC?

Wenn Sie eine Fehlermeldung erhalten, dass Windows eine bestimmte DLL-Datei nicht finden konnte, kann es sehr verlockend sein, die Datei von einer der vielen DLL-Sites herunterzuladen. Hier ist, warum Sie nicht sollten.

Was sind DLLs?

VERBINDUNG: Was ist rundll32.exe und warum läuft es?

Bevor wir uns damit befassen, warum Sie DLL-Dateien (Dynamic Link Library) nicht aus dem Internet herunterladen sollten, werfen wir zunächst einen Blick auf die DLL-Dateien. Eine DLL-Datei ist eine Bibliothek, die einen Satz Code und Daten zum Ausführen einer bestimmten Aktivität in Windows enthält. Apps können diese DLL-Dateien dann aufrufen, wenn diese Aktivität ausgeführt werden muss. DLL-Dateien ähneln ausführbaren Dateien (EXE), mit der Ausnahme, dass DLL-Dateien nicht direkt in Windows ausgeführt werden können. Mit anderen Worten, Sie können nicht auf eine DLL-Datei doppelklicken, um sie wie eine EXE-Datei auszuführen. Stattdessen können DLL-Dateien von anderen Apps aufgerufen werden. Tatsächlich sind sie so konzipiert, dass sie von mehreren Apps gleichzeitig aufgerufen werden können. Der Link-Teil des DLL-Namens weist noch auf einen weiteren wichtigen Aspekt hin. Es können mehrere DLLs miteinander verknüpft werden, sodass beim Aufruf einer DLLGleichzeitig werden auch mehrere andere DLLs aufgerufen.

Windows selbst verwendet DLLs in großem Umfang, wie eine Tour durch den C:\Windows\System32Ordner zeigt. Betrachten wir als Beispiel für das, worüber wir sprechen, die Windows-Systemdatei "comdlg32.dll". Diese Datei, auch als allgemeine Dialogfeldbibliothek bezeichnet, enthält Code und Daten zum Erstellen vieler allgemeiner Dialogfelder, die in Windows angezeigt werden - Dialogfelder zum Öffnen von Dateien, Drucken von Dokumenten usw. Die Anweisungen in dieser DLL behandeln alles vom Empfangen und Interpretieren von Nachrichten für das Dialogfeld bis zur Angabe, wie das Dialogfeld auf Ihrem Bildschirm aussieht. Offensichtlich können mehrere Apps gleichzeitig diese DLL aufrufen, da Sie sonst nicht in mehr als einer App gleichzeitig ein Dialogfeld (wie das folgende) öffnen könnten.

Mit DLLs kann Code modularisiert und wiederverwendet werden. Dies bedeutet, dass Entwickler keine Zeit damit verbringen müssen, Code von Grund auf neu zu schreiben, um alltägliche oder allgemeine Funktionen auszuführen. Obwohl Entwickler ihre eigenen DLLs erstellen, um sie mit ihren Apps zu installieren, wird die überwiegende Mehrheit der von Apps aufgerufenen DLLs tatsächlich mit Windows oder zusätzlichen Paketen wie Microsoft .NET Framework oder Microsoft C ++ Redistributables gebündelt. Der andere große Vorteil der Modularisierung von Code auf diese Weise besteht darin, dass Updates einfacher auf jede DLL als auf eine gesamte App angewendet werden können - insbesondere, wenn diese DLLs nicht vom Entwickler der App stammen. Wenn Microsoft beispielsweise bestimmte DLLs in seinem .NET Framework aktualisiert, können alle Apps, die diese DLLs verwenden, sofort die aktualisierte Sicherheit oder Funktionalität nutzen.

VERBINDUNG: Was ist Microsoft .NET Framework und warum wird es auf meinem PC installiert?

Heruntergeladene DLLs sind möglicherweise veraltet

Wenn Sie also ein wenig über DLLs wissen, können Sie sie aus dem Internet herunterladen, wenn eine in Ihrem System fehlt.

Das häufigste Problem bei heruntergeladenen DLLs ist, dass sie veraltet sind. Viele der DLL-Sites erhalten ihre DLLs, indem sie sie einfach von ihren eigenen Computern oder den Computern ihrer Benutzer hochladen. Sie können das Problem wahrscheinlich bereits sehen. Die meisten dieser Websites möchten nur Ihren Datenverkehr, und sobald eine DLL hochgeladen wurde, haben sie wenig Anreiz, sicherzustellen, dass die Datei auf dem neuesten Stand gehalten wird. Hinzu kommt, dass Anbieter aktualisierte DLLs normalerweise nicht als einzelne Dateien für die Öffentlichkeit freigeben, und Sie sehen, dass selbst Websites, die  versuchen , Dateien auf dem neuesten Stand zu halten, wahrscheinlich nicht sehr erfolgreich sind.

Es gibt auch das weitere Problem, dass DLLs normalerweise in Pakete integriert sind. Ein Update für eine DLL in einem Paket wird häufig von Updates für andere verwandte DLLs im selben Paket begleitet. Dies bedeutet, dass Sie selbst in dem unwahrscheinlichen Fall, dass Sie eine aktuelle DLL-Datei erhalten, keine verwandten Dateien erhalten, die dies auch haben wurde aktualisiert.

Heruntergeladene DLLs können infiziert werden

Obwohl dies seltener vorkommt, besteht ein möglicherweise viel schlimmeres Problem darin, dass DLLs, die Sie von anderen Quellen als dem Hersteller herunterladen, manchmal mit Viren oder anderer Malware geladen werden können, die Ihren PC infizieren können. Dies gilt insbesondere für Websites, die nicht genau wissen, woher sie ihre Dateien beziehen. Und es ist nicht so, dass diese Websites sich alle Mühe geben werden, Ihnen über ihre riskanten Quellen zu erzählen. Der wirklich beängstigende Teil ist, dass Sie beim Herunterladen einer infizierten DLL-Datei aufgrund der Natur von DLL-Dateien das Risiko eingehen, dieser Datei einen tieferen Zugriff zu gewähren, als dies bei einer normalen infizierten Datei der Fall sein könnte.

VERBINDUNG: Was ist das beste Antivirenprogramm für Windows 10? (Ist Windows Defender gut genug?)

Die gute Nachricht hier ist, dass eine gute Echtzeit-Antiviren-App diese infizierten DLL-Dateien normalerweise erkennen kann, bevor sie tatsächlich auf Ihrem System gespeichert werden, und verhindert, dass sie Schaden anrichten. Sie müssen sich jedoch daran erinnern, dass selbst ein großartiges Antivirenprogramm möglicherweise keinen perfekten Schutz bietet. Wenn Sie es sich zur Gewohnheit machen, riskante Dateien herunterzuladen, wird es Sie wahrscheinlich irgendwann einholen. Vermeiden Sie diese DLL-Sites am besten.

Sie werden Ihr Problem wahrscheinlich sowieso nicht lösen

Es ist zwar möglich, dass nur eine einzelne DLL-Datei auf Ihrem PC beschädigt oder gelöscht wurde, es ist jedoch wahrscheinlicher, dass andere DLLs oder verwandte App-Dateien ebenfalls beschädigt sind oder fehlen. Der Grund, warum Sie eine Fehlermeldung zu einer bestimmten Datei erhalten, ist, dass dies der erste Fehler ist, auf den eine App vor dem Absturz gestoßen ist, und dass Sie einfach nicht über den Rest informiert werden. Dies kann unabhängig von der Ursache des Problems zutreffen.

VERBINDUNG: Schlechte Sektoren erklärt: Warum Festplatten schlechte Sektoren bekommen und was Sie dagegen tun können

Warum könnten DLLs verloren gehen oder beschädigt werden? Es kann sein, dass eine andere fehlerhafte App oder ein fehlerhaftes Update versucht hat, die Datei zu ersetzen, und fehlgeschlagen ist oder sie durch eine veraltete Kopie ersetzt hat. Möglicherweise liegt ein Fehler bei der Installation Ihrer Haupt-App oder in einem Paket wie .NET vor. Es kann sogar sein, dass Sie ein anderes Problem haben - wie fehlerhafte Sektoren auf Ihrer Festplatte -, das das korrekte Laden der Datei verhindert.

Wie kann ich meinen DLL-Fehler beheben?

Die einzige Möglichkeit, um sicherzustellen, dass Sie eine stabile, aktuelle und saubere DLL erhalten, besteht darin, sie über die Quelle abzurufen, von der sie stammt. In der Regel lautet diese Quelle:

VERBINDUNG: So suchen Sie in Windows nach beschädigten Systemdateien (und beheben diese)

  • Ihr Windows-Installationsmedium . Es ist unwahrscheinlich, dass Sie einfach eine DLL-Datei von Ihrem Installationsmedium kopieren können, aber Sie haben eine schnelle Möglichkeit, dies zu versuchen, bevor Sie etwas so drastisches tun wie die Neuinstallation von Windows. Sie können das Windows-Ressourcenschutz-Tool (häufig als System File Checker oder SFC bezeichnet) verwenden, mit dem nach beschädigten oder fehlenden Systemdateien in Windows gesucht und diese behoben werden. Sie sollten Ihr Installationsmedium zur Hand haben, wenn Sie das Tool ausführen, nur für den Fall, dass es eine Datei von dort kopieren muss. (Wenn Sie keine Installations-CD haben, können Sie diese hier herunterladen.)
  • Die Microsoft .NET Framework-Pakete . Mehrere Versionen von .NET werden automatisch zusammen mit Windows installiert, und viele Apps installieren auch Dateien aus diesen Paketen. Sie können unseren Artikel über das .NET Framework lesen, der auch einige Ratschläge zum Auffinden und Reparieren der damit verbundenen Probleme enthält.
  • Verschiedene Microsoft Visual C ++ Redistributable-Pakete . Abhängig von den von Ihnen verwendeten Apps sind möglicherweise mehrere Versionen von C ++ Redistributable auf Ihrem PC installiert. Es kann manchmal schwierig sein, den Schuldigen einzugrenzen. Ein guter Ausgangspunkt ist jedoch unser Artikel über C ++ Redistributables, der auch verschiedene Schritte zur Fehlerbehebung und Links enthält, über die Sie die aktuellsten Versionen direkt von Microsoft herunterladen können.
  • Die App, mit der die DLL geliefert wurde . Wenn die DLL zusammen mit einer App installiert wurde und nicht Teil eines separaten Pakets ist, ist es am besten, die App neu zu installieren. Bei einigen Apps können Sie eine Reparatur anstelle einer vollständigen Neuinstallation durchführen. Beide Optionen sollten funktionieren, da bei einer Reparatur normalerweise nach fehlenden Dateien in den Installationsordnern gesucht wird.

Wenn dies alles fehlschlägt, können Sie sich möglicherweise an den App-Anbieter wenden und eine Kopie einer einzelnen DLL-Datei anfordern. Einige Unternehmen sind offen für diese Anfrage; Einige sind es nicht. Wenn Sie auf ein Unternehmen stoßen, das keine einzelnen Dateien bereitstellt, kann es möglicherweise andere Vorschläge zur Lösung Ihres Problems unterbreiten.