Amikor hibaüzenetet kap, miszerint a Windows nem talál egy adott DLL fájlt, rettenetesen csábító lehet a fájlt letölteni a sok ott lévő DLL webhely egyikéről. Itt van, miért nem szabad.
Mik azok a DLL-ek?
ÖSSZEFÜGGŐ: Mi a rundll32.exe és miért fut?
Mielőtt belekezdenénk, miért ne töltené le a Dynamic Link Library (DLL) fájlokat az internetről, először nézzük meg, hogy melyek a DLL fájlok. A DLL fájl egy könyvtár, amely kódokat és adatokat tartalmaz egy adott tevékenység végrehajtásához a Windows rendszerben. Ezután az alkalmazások felhívhatják ezeket a DLL fájlokat amikor szükségük van arra az elvégzett tevékenységre. A DLL fájlok nagyon hasonlítanak a futtatható (EXE) fájlokhoz, kivéve, hogy a DLL fájlok nem futtathatók közvetlenül a Windows rendszerben. Más szavakkal, nem lehet duplán kattintani egy DLL fájlra a futtatáshoz ugyanúgy, mint egy EXE fájlhoz. Ehelyett a DLL fájlokat úgy tervezték, hogy más alkalmazások hívják meg őket. Valójában úgy tervezték őket, hogy egyszerre több alkalmazás hívja meg őket. A DLL név „link” része egy másik fontos szempontot is sugall. Több DLL is összekapcsolható úgy, hogy egy DLL meghívásakor egyszerre számos más DLL is meghívásra kerül.
A Windows maga széles körben használja a DLL-eket, a Windows rendszeren keresztüli bemutatóként
C: \ Windows \ System32
mappa megmondhatja. Példaként tekinthetjük a Windows rendszerfájlt „comdlg32.dll” fájlra. Ez a fájl, más néven Common Dialog Box Library, kódot és adatokat tartalmaz a Windows rendszerében megjelenő közös párbeszédpanelek sokaságának létrehozásához - párbeszédablakokhoz, például fájlok megnyitásához, dokumentumok nyomtatásához stb. Az ebben a DLL-ben található utasítások a párbeszédpanelnek szánt üzenetek fogadásától és értelmezésétől kezdve a párbeszédpanel képernyőn való megjelenésének meghatározásáig mindent kezelnek. Nyilvánvaló, hogy több alkalmazás egyszerre hívhatja meg ezt a DLL-t, különben nem tudna egyszerre több alkalmazásban megnyitni egy párbeszédpanelt (mint az alábbi).
A DLL-ek lehetővé teszik a modulok modulálását és újrafelhasználását, ami azt jelenti, hogy a fejlesztőknek nem kell időt tölteniük a semmiből a kódírással, hogy hétköznapi vagy általános funkciókat hajtsanak végre. És bár a fejlesztők saját DLL-eket hoznak létre az alkalmazásokkal való telepítéshez, az alkalmazások által meghívott DLL-ek túlnyomó része tulajdonképpen Windows vagy további csomagok, például a Microsoft .NET-keretrendszer vagy Microsoft C ++ újraelosztók . A kód ilyen módon történő modulálásának másik nagy előnye, hogy a frissítések könnyebben alkalmazhatók minden egyes DLL-re, nem pedig egy teljes alkalmazásra - különösen, ha ezek a DLL-ek nem az alkalmazás fejlesztőjétől származnak. Például, amikor a Microsoft bizonyos DLL-eket frissít a .NET-keretrendszerében, az ezeket a DLL-eket használó összes alkalmazás azonnal kihasználhatja a frissített biztonság vagy funkció előnyeit.
ÖSSZEFÜGGŐ: Mi a Microsoft .NET-keretrendszer, és miért van telepítve a számítógépemre?
A letöltött DLL-ek elavultak lehetnek
Tehát, ha egy kicsit megértjük az övünk alatt lévő DLL-eket, miért ne tölthetné le azokat az internetről, ha hiányzik egy a rendszeréből?
A letöltött DLL-ekkel a leggyakoribb probléma az, hogy elavultak. Az ott található DLL-webhelyek közül sokan úgy kapják meg a DLL-eket, hogy csak saját - vagy felhasználóik - számítógépeikről töltik fel őket. Valószínűleg már látja a problémát. Ezen webhelyek többsége csak a forgalmát akarja, és miután feltöltötte a DLL-t, kevés ösztönzőt biztosítanak a fájl naprakészségének biztosítására. Ehhez hozzá kell tenni, hogy a gyártók általában nem adják ki a frissített DLL-eket a nyilvánosság számára külön fájlként, és láthatja, hogy még azok is, akik próbálja meg a fájlok naprakészen tartása valószínűleg nem lesz túl sikeres.
Van egy további probléma, hogy a DLL-eket általában csomagokba integrálják. A csomagban lévő egyik DLL frissítését gyakran kísérik az ugyanabban a csomagban lévő más, kapcsolódó DLL frissítések, ami azt jelenti, hogy még abban a valószínűtlen esetben is, ha naprakész DLL fájlt kap, nem kap kapcsolódó fájlokat, amelyek szintén frissítve.
A letöltött DLL fájlok megfertőződhetnek
Bár ritkábban fordul elő, potenciálisan sokkal rosszabb probléma az, hogy a szállítótól eltérő forrásból letöltött DLL-fájlok néha vírusokkal vagy más rosszindulatú programokkal tölthetők fel, amelyek megfertőzhetik a számítógépét. Különösen igaz ez azokon a webhelyeken, amelyek nem túl óvatosak abban, hogy hol szerzik be fájljaikat. És nem olyan, hogy ezek a webhelyek mindent megtesznek azért, hogy kockázatos forrásaikról meséljenek. Az igazán ijesztő rész az, hogy ha fertőzött DLL fájlt tölt le, akkor a DLL fájlok természetéből adódóan azt kockáztatja, hogy a fájlnak mélyebb hozzáférést biztosít, mint egy szokásos fertőzött fájl.
ÖSSZEFÜGGŐ: Mi a legjobb víruskereső a Windows 10 rendszerhez? (Elég jó a Windows Defender?)
A jó hír itt az, hogy a jó, valós idejű víruskereső alkalmazás rendszerint észlelni tudja ezeket a fertőzött DLL fájlokat, mielőtt a rendszerbe mentenék őket, és megakadályozhatja őket abban, hogy kárt okozzanak Ennek ellenére emlékeznie kell arra, hogy egy nagyszerű víruskereső program sem biztos, hogy tökéletes védelmet nyújt Önnek. Ha megszokja a kockázatos fájlok letöltését, akkor valószínűleg valamikor utoléri. A legjobb, ha csak elkerüli ezeket a DLL-webhelyeket.
Valószínűleg nem fogják megoldani a problémádat
Bár lehetséges, hogy a számítógépén csak egyetlen DLL fájl sérült meg vagy törlődött, valószínűbb, hogy más DLL-ek vagy a kapcsolódó alkalmazásfájlok is sérültek vagy hiányoznak. Azért kap hibát egy adott fájl kapcsán, hogy ez az első hiba, amellyel az alkalmazás összeomlik, és a többiről egyszerűen nem kap értesítést. Ez igaz lehet a probléma okától függetlenül.
ÖSSZEFÜGGŐ: A rossz szektorok magyarázata: Miért válnak a merevlemezek rossz szektorokba, és mit tehet ez ellen?
Miért hiányozhatnak vagy sérülhetnek a DLL-ek? Előfordulhat, hogy egy másik hibás alkalmazás vagy frissítés megpróbálta kicserélni a fájlt, és nem sikerült, vagy elavult másolattal helyettesítette. Hiba lehet a fő alkalmazás telepítésében vagy egy olyan csomagban, mint a .NET. Még az is lehet, hogy más problémád van - például rossz szektorok a merevlemezen - amelyek megakadályozzák a fájl megfelelő betöltését.
Hogyan javítható a DLL hiba?
A stabil, naprakész és tiszta DLL megszerzésének egyetlen módja az, ha a forráson keresztül szerzi be. Általában ez a forrás lesz:
ÖSSZEFÜGGŐ: Sérült rendszerfájlok keresése (és javítása) a Windows rendszerben
- A Windows telepítési adathordozója . Nem valószínű, hogy képes lesz egyszerűen másolni egy DLL fájlt a telepítési adathordozóról, de van egy gyors lehetősége, hogy megpróbálja kipróbálni, mielőtt valami olyan drasztikus dolgot tenne, mint a Windows újratelepítése. tudsz használja a Windows Resource Protection eszközt (gyakran rendszerfájl-ellenőrzőnek vagy SFC-nek is nevezik), amely a sérült vagy hiányzó rendszerfájlokat keresi és javítja a Windows rendszerben. Az eszköz futtatásakor a telepítő adathordozónak praktikusnak kell lennie, arra az esetre, ha onnan másolnia kellene egy fájlt. (Ha nincs telepítőlemez, megteheti töltsön le egyet itt .)
- A Microsoft .NET-keretrendszer csomagjai . A .NET több verziója automatikusan települ a Windows rendszerrel, és sok alkalmazás fájlokat is telepít ezekből a csomagokból. Te tudsz olvasni cikkünk a .NET keretrendszerről , amely szintén tartalmaz néhány tanácsot a kapcsolódó problémák felkutatásához és kijavításához.
- Különböző Microsoft Visual C ++ terjeszthető csomagok . A használt alkalmazásoktól függően előfordulhat, hogy a C ++ Redistributable több verziója van telepítve a számítógépre. Néha nehéz lesz szűkíteni, hogy melyik a tettes, de jó kiindulópont cikkünk a C ++ újraelosztókról , amely számos hibaelhárítási lépést és linket is tartalmaz, ahonnan a legfrissebb verziókat letöltheti egyenesen a Microsoftról.
- Az az alkalmazás, amellyel a DLL jött . Ha a DLL-t egy alkalmazással együtt telepítették, nem pedig külön csomag részét képezték, akkor a legjobb megoldás az alkalmazás újratelepítése. Egyes alkalmazások lehetővé teszik a javítás elvégzését a teljes újratelepítés helyett. Bármelyik opciónak működnie kell, mivel a javítás általában hiányzó fájlokat keres a telepítési mappákból.
Ha mindez nem sikerül, akkor kapcsolatba léphet az alkalmazás szállítójával és kérheti egy egyedi DLL fájl másolatát. Egyes vállalatok nyitottak erre a kérésre; néhány nem. Ha olyan társaságba ütközik, amely nem nyújt be egyedi fájlokat, akkor legalább más javaslatokat tudnak felajánlani a probléma megoldására.