Какви са DLL файлове и защо липсва от моя компютър?
Когато получите грешка, казвайки, че Windows не може да намери конкретен DLL файл, може да бъде много изкушаващо да изтеглите файла от един от многото DLL сайтове там. Ето защо не трябва.
Какво представляват DLL файловете?
Преди да започнем с това защо не трябва да изтегляте файловете на Dynamic Link Library (DLL) от интернет, нека първо да разгледаме какви DLL файлове са. DLL файлът е библиотека, която съдържа набор от кодове и данни за извършване на определена дейност в Windows. Приложенията след това могат да извикват тези DLL файлове, когато се нуждаят от тази дейност. DLL файловете много приличат на изпълними (EXE) файлове, с изключение на това, че DLL файловете не могат да се изпълняват директно в Windows. С други думи, не можете да щракнете двукратно върху DLL файл, за да го изпълните по същия начин, по който бихте използвал EXE файл. Вместо това, DLL файловете са предназначени да бъдат извикани от други приложения. В действителност, те са предназначени да бъдат призовани от множество приложения наведнъж. Част от името на DLL също предполага друг важен аспект. Няколко DLL-та могат да бъдат свързани заедно, така че когато се нарича една DLL, едновременно се извикват и други DLL-и..
Самата Windows широко използва DLL, като обиколка на C: \ Windows \ System32
папката може да ви каже. Като пример за това, за което говорим, нека разгледаме системния файл на Windows „comdlg32.dll“. Този файл, известен още като общата библиотека с диалогови прозорци, съдържа код и данни за изграждането на много от често срещаните диалогови прозорци, които виждате в Windows-диалози за неща като отваряне на файлове, отпечатване на документи и т.н. Инструкциите в тази DLL обработват всичко - от получаване и тълкуване на съобщения, предназначени за диалоговия прозорец, за да се определи как изглежда диалоговият прозорец на вашия екран. Очевидно е, че няколко приложения могат да се обадят на тази DLL едновременно, в противен случай няма да можете да отворите диалогов прозорец (като този по-долу) в повече от едно приложение наведнъж.
DLL позволяват код да бъде модулиран и използван отново, което означава, че разработчиците не трябва да прекарват време в писане на код от нулата, за да изпълняват обикновени или общи функции. И макар че разработчиците ще създадат свои собствени DLL файлове, които да инсталират с техните приложения, огромното мнозинство от DLL-тата, наречени от приложения, всъщност са свързани с Windows или с допълнителни пакети, като Microsoft .NET Framework или Microsoft C ++ Redistributables. Другото голямо предимство на модулирането на кода по този начин е, че актуализациите са по-лесни за прилагане за всяка DLL, а не за цялото приложение, особено когато тези DLL файлове не идват от разработчика на приложението. Например, когато Microsoft актуализира определени DLL в своята .NET Framework, всички приложения, които използват тези DLL файлове, могат незабавно да се възползват от актуализираната сигурност или функционалност..
Изтеглените DLL файлове могат да бъдат остарели
Така че, с малко разбиране за DLL файловете под нашите колани, защо да не ги изтеглите от интернет, когато някой ви липсва от вашата система?
Най-често срещаният проблем, с който ще се сблъскате с изтеглените DLL, е, че те са остарели. Много от DLL сайтовете там получават своите DLL файлове само като ги качват от техните собствени или техните компютри. Вероятно вече можете да видите проблема. Повечето от тези сайтове просто искат вашия трафик, и след като DLL е качен, те имат малък стимул да гарантират, че файлът е актуализиран. Добавете към това, че доставчиците обикновено не издават актуализирани DLL-та на обществеността като отделни файлове и можете да видите дори сайтовете, които опитвам актуализирането на файловете няма да е много успешно.
Има и допълнителен проблем, че DLL файловете обикновено са интегрирани в пакети. Актуализация на един DLL в пакет често се придружава от актуализации на други свързани DLL файлове в един и същ пакет, което означава, че дори в малко вероятния случай да получите актуален DLL файл, няма да получите свързани файлове, които също имат са актуализирани.
Изтеглените DLL файлове могат да бъдат заразени
Макар и по-рядко срещан, потенциално много по-лош проблем е, че DLL файловете, които изтегляте от източници, различни от продавача, понякога могат да бъдат заредени с вируси или друг зловреден софтуер, който може да зарази компютъра ви. Това е особено вярно за сайтове, които не са много внимателни за това къде получават своите файлове. И това не е като тези сайтове ще излязат от пътя си да ви разкажат за рисковите си източници. Наистина страшна част е, че ако изтеглите заразения DLL файл, рискувате от самата природа на DLL файловете, които дават по-дълбок достъп до файла, отколкото може да получи обикновен заразен файл..
Добрата новина тук е, че едно добро антивирусно приложение в реално време обикновено може да открие тези заразени DLL файлове, преди да бъдат записани в системата ви и да им попречи да направят каквито и да било щети. Все пак трябва да помните, че дори една страхотна антивирусна програма може да не ви осигури перфектна защита. Ако направите навик да сваляте рискови файлове, вероятно ще ви настигне в някакъв момент. Най-добре е просто да избягвате тези DLL сайтове.
Те вероятно няма да решат проблема ви
Макар че е възможно само един DLL файл на вашия компютър да е бил повреден или изтрит, е по-вероятно други DLL файлове или свързани с тях файлове на приложения също да бъдат повредени или липсват. Причината да получавате грешка за един конкретен файл е, че това е първата грешка, която приложението е срещнало преди срив и просто не сте уведомени за останалите. Това може да е вярно, независимо от причината за проблема.
Защо DLL файловете липсват или са повредени? Възможно е друго несъществуващо приложение или актуализация да се опита да замени файла и да е неуспешно, или да го замени с остаряло копие. Това може да е грешка при инсталирането на основното ви приложение или в пакет като .NET. Възможно е дори да имате друг проблем като лоши сектори на вашия твърд диск, които предотвратяват правилното зареждане на файла.
Как мога да поправя моя DLL грешка?
Единственият начин да се гарантира, че ще получите стабилна, актуална и чиста DLL, е да я получите чрез източника, от който е създаден. Обикновено този източник ще бъде:
- Вашият инсталационен носител на Windows. Малко вероятно е да можете да копирате DLL файл от инсталационния си носител, но имате бърз вариант да опитате, преди да направите нещо толкова драстично като повторното инсталиране на Windows. Можете да използвате инструмента за защита на ресурсите на Windows (който често се нарича системна проверка на файлове или SFC), който ще сканира и коригира повредени или липсващи системни файлове в Windows. Трябва да имате удобен инсталационен носител, когато стартирате инструмента, само в случай, че трябва да копира файл от там. (Ако нямате инсталационен диск, можете да го изтеглите тук.)
- Пакетите на Microsoft .NET Framework. Няколко версии на .NET се инсталират автоматично заедно с Windows и много приложения също инсталират файлове от тези пакети. Можете да прочетете нашата статия за .NET framework, която също има някои съвети за намиране и отстраняване на свързани проблеми.
- Различни пакети за разпространение на Microsoft Visual C ++. В зависимост от приложенията, които използвате, може да имате няколко версии на C ++ Redistributable, инсталирани на вашия компютър. Понякога може да е трудно да се ограничи кой е виновникът, но добро място да започнете е нашата статия за C ++ Redistributables, която също има няколко стъпки за отстраняване на неизправности и връзки, където можете да изтеглите най-актуалните версии направо от Microsoft..
- Приложението, което DLL дойде с. Ако DLL е инсталиран заедно с приложение, а не е част от отделен пакет, най-добре е да преинсталирате приложението. Някои приложения ви позволяват да извършите ремонт вместо пълно преинсталиране. И двата варианта трябва да работят, тъй като ремонт обикновено търси липсващи файлове в инсталационните папки.
Ако не успеете, може да успеете да се свържете с продавача на приложението и да поискате копие на отделен DLL файл. Някои компании са отворени за това искане; някои не са. Ако се сблъскате с компания, която няма да предоставя отделни файлове, те поне могат да предложат други предложения за решаване на проблема ви.