Homepage » hogyan kell » Mi a DLL-fájl, és miért hiányzik a számítógépem?

    Mi a DLL-fájl, és miért hiányzik a számítógépem?

    Amikor egy hibaüzenetet kap, amikor a Windows nem talál egy bizonyos DLL-fájlt, elképesztően csábító lehet letölteni a fájlt a sok DLL-webhely közül. Miért nem kellene.

    Mik azok a DLL-ek?

    Mielőtt elkezdenénk kezdeni, miért nem kell letöltenie a Dynamic Link Library (DLL) fájlokat az internetről, nézzük meg először, hogy mi a DLL fájl. A DLL fájl olyan könyvtár, amely kódot és adatot tartalmaz egy adott tevékenység végrehajtásához a Windows rendszerben. Az alkalmazások akkor hívhatják fel ezeket a DLL fájlokat, ha szükségük van erre a tevékenységre. A DLL fájlok nagyon hasonlítanak a végrehajtható (EXE) fájlokhoz, kivéve, hogy a DLL fájlokat nem lehet közvetlenül végrehajtani a Windows rendszerben. Más szavakkal, nem lehet duplán kattintani egy DLL-fájlra, hogy ugyanúgy fusson, mint egy EXE-fájl. Ehelyett a DLL-fájlokat úgy tervezték, hogy más alkalmazások is felhívják őket. Valójában úgy tervezték, hogy egyszerre több alkalmazás is felhívja őket. A DLL név „link” része szintén egy másik fontos szempontot javasol. Több DLL is összekapcsolható úgy, hogy amikor egy DLL-t hívnak, számos más DLL-t is hívnak egyszerre.

    A Windows maga is széles körben használja a DLL-eket, mint a C: \ Windows \ System32 mappa megmondhatja. Példaként említjük a Windows rendszerfájlt „comdlg32.dll.”. Ez a fájl, más néven a Közös párbeszédpanel könyvtár, kódot és adatot tartalmaz számos közös párbeszédpanel építéséhez A Windows-párbeszédablakok a fájlok megnyitásához, a dokumentumok nyomtatásához stb. A DLL-ben található utasítások mindent megtesznek a párbeszédablakhoz tartozó üzenetek fogadásától és értelmezésétől, hogy meghatározza, hogyan néz ki a párbeszédpanel a képernyőn. Nyilvánvaló, hogy egyidejűleg több alkalmazás is hívhatja ezt a DLL-t, különben nem tudna megnyitni egy párbeszédpanelt (mint az alábbiakat) egynél több alkalmazásban egyszerre.

    A DLL-ek lehetővé teszik a kód modulálását és újrafelhasználását, ami azt jelenti, hogy a fejlesztőknek nem kell időtől kezdve írni a kódot semmiből a hétköznapi vagy közös funkciók elvégzéséhez. És bár a fejlesztők saját DLL-eket hoznak létre az alkalmazásukkal való telepítéshez, az alkalmazások által hívott DLL-ek túlnyomó többsége Windows-hoz vagy extra csomagokkal van összekapcsolva, mint például a Microsoft .NET-keretrendszer vagy a Microsoft C ++ újraelosztók. A moduláris kódolás másik nagy előnye, hogy a frissítések könnyebben alkalmazhatók minden DLL-re, nem pedig egy teljes alkalmazásra, különösen akkor, ha ezek a DLL-ek nem az alkalmazás fejlesztőjéből származnak. Például amikor a Microsoft egyes DLL-eket frissít a .NET-keretrendszerben, az összes DLL-t használó alkalmazás azonnal kihasználhatja a frissített biztonsági vagy funkcionalitás előnyeit..

    A letöltött DLL-ek elavultak

    Tehát, miért nem tölthetjük le őket az internetről, ha hiányzik a rendszeredből, miért nem ismeri a DLL-eket?

    A letöltött DLL-ekkel a leggyakoribb probléma az, hogy elavultak. A DLL-oldalak közül sokan letölthetik a DLL-jüket a saját vagy a felhasználók számítógépeiből történő feltöltésükkel. Valószínűleg már láthatja a problémát. A legtöbb ilyen webhely csak a forgalmat akarja, és a DLL feltöltése után kevés ösztönzőjük van annak biztosítására, hogy a fájl naprakész legyen. Ehhez hozzáteszi, hogy a forgalmazók általában nem frissítik a frissített DLL-fájlokat a nyilvánosság számára, mint egyedi fájlokat, és láthatjuk, hogy még azok is, akik próbáld ki a fájlok naprakészen tartása valószínűleg nem lesz sikeres.

    Van még további probléma, hogy a DLL-ek általában integrálódnak a csomagokba. Egy csomagban lévő DLL-fájl frissítése gyakran egy másik csomaghoz tartozó, kapcsolódó DLL-frissítésekhez kapcsolódik, ami azt jelenti, hogy még abban az esetben is, ha nem valószínű, hogy naprakész DLL-fájlt kapsz, nem kapsz kapcsolódó fájlokat is frissítve.

    A letöltött DLL-ek fertőzhetők

    Bár kevésbé gyakori, a potenciálisan sokkal rosszabb probléma az, hogy a forgalmazótól eltérő forrásokból letöltött DLL-ek néha vírusokkal vagy más rosszindulatú programokkal töltődhetnek be, amelyek megfertőzhetik a számítógépet. Ez különösen igaz azokra a webhelyekre, amelyek nem eléggé óvatosak abban, hogy hol kapják meg a fájljukat. És nem olyan, mint az, hogy ezek a webhelyek ki fognak lépni a kockázatos forrásokról. Az igazán ijesztő rész az, hogy ha letöltött egy fertőzött DLL-fájlt, akkor a DLL-fájlok természetéből adódóan kockázatot jelenthet, mivel a fájl mélyebb hozzáférést biztosít, mint egy rendszeres fertőzött fájl..

    A jó hír itt az, hogy egy jó, valós idejű víruskereső alkalmazás általában felismeri ezeket a fertőzött DLL fájlokat, mielőtt ténylegesen elmentik a rendszerbe, és megakadályozzák, hogy bármilyen kárt okozzanak. Mégis emlékeznie kell arra, hogy még egy nagy víruskereső program sem nyújt tökéletes védelmet. Ha a kockázatos fájlokat letölti, akkor valószínűleg valamikor felzárkózik veled. A legjobb, ha csak el kell kerülnünk ezeket a DLL-oldalakat.

    Valószínűleg nem fogják megoldani a problémát

    Bár lehetséges, hogy csak egy DLL-fájl van a számítógépén sérült vagy törölve, valószínűbb, hogy más DLL-ek vagy a kapcsolódó alkalmazásfájlok is sérültek vagy hiányoznak. Az ok, amiért egy adott fájl hibája van, az, hogy ez az első hiba, amit egy alkalmazás összeomlott, és egyszerűen nem értesítjük a többiről. Ez a probléma okától függetlenül igaz lehet.

    Miért tűnhetnek el a DLL-ek eltűnése vagy sérülése? Lehet, hogy egy másik hibás alkalmazás vagy frissítés megpróbálta kicserélni a fájlt, és sikertelen volt, vagy helyettesített egy elavult másolattal. Lehet, hogy hiba van a fő alkalmazás telepítésekor vagy egy olyan csomagban, mint a .NET. Előfordulhat, hogy a merevlemezen egy másik problémás, rossz szektor van, ami megakadályozza a fájl helyes betöltését.

    Hogyan javíthatom a DLL hibámat?

    Az egyetlen módja annak, hogy stabil, naprakész és tiszta DLL-t kapjunk a forrásból, amelyből származik. A forrás általában:

    • A Windows telepítési adathordozója. Nem valószínű, hogy egyszerűen átmásolhatod a DLL-fájlt a telepítési adathordozóról, de van egy gyors lehetőséged, hogy megpróbálhatsz valamit olyan drasztikusan, mint a Windows újraindítása. Használhatja a Windows erőforrás-védelmi eszközt (gyakran nevezik a rendszerfájl-ellenőrzőnek, vagy az SFC-nek), amely a Windows rendszerben a sérült vagy hiányzó rendszerfájlokat keresi és javítja. A szerszám futtatásakor kéznél kell lennie a telepítési adathordozóról, csak abban az esetben, ha másolnia kell egy fájlt onnan. (Ha nincs telepítőlemeze, itt letölthet egyet.)
    • A Microsoft .NET-keretrendszer csomagok. A .NET több verziója automatikusan telepítve van a Windows rendszerrel, és számos alkalmazás is telepít fájlokat ezekből a csomagokból is. A .NET-keretrendszerről szóló cikkünket olvassa el, amely szintén tanácsot ad a kapcsolódó problémák megtalálásához és javításához.
    • Különböző Microsoft Visual C ++ újratelepíthető csomagok. A használt alkalmazásoktól függően a C ++ Redistributable több verziója is telepíthető a számítógépre. Néha nehezen lehet szűkíteni, hogy melyik a bűnös, de egy jó hely a C ++ Redistributables-ről szóló cikkünkre, amely számos hibaelhárítási lépést és linket is tartalmaz, ahol a legfrissebb verziókat közvetlenül a Microsoftról töltheti le.
    • Az az alkalmazás, amellyel a DLL jött. Ha a DLL-t egy alkalmazással együtt telepítették, nem pedig egy külön csomag részeként, akkor a legjobb megoldás az alkalmazás újratelepítése. Egyes alkalmazások lehetővé teszik a javítás végrehajtását a teljes újratelepítés helyett. Mindkét opciónak működnie kell, mivel a javítás általában a hiányzó fájlokat keresi a telepítési mappákban.

    Ha mindez meghiúsul, előfordulhat, hogy kapcsolatba léphet az alkalmazás szállítójával, és kérheti az egyedi DLL fájl másolatát. Egyes vállalatok nyitottak erre a kérésre; némelyik nem. Ha olyan cégre futtat, amely nem nyújt egyedi fájlokat, legalább lehet, hogy más javaslatokat is kínál a probléma megoldására.