If-Koubou

Какви са DLL файловете и защо липсва един от моя компютър?

Какви са DLL файловете и защо липсва един от моя компютър? (Как да)

Когато получите грешка, че Windows не може да намери конкретен DLL файл, може да бъде ужасно изкусно да изтеглите файла от един от многото DLL сайтове там. Ето защо не трябва.

Какво представляват DLL-тата?

Преди да започнем защо не трябва да изтегляте файлове от динамична библиотека (DLL) от Интернет, нека първо да разгледаме какви са DLL файловете. DLL файлът е библиотека, която съдържа набор от кодове и данни за извършване на определена дейност в Windows. Приложенията могат да се обадят на тези DLL файлове, когато се нуждаят от тази дейност. DLL файловете много приличат на изпълними файлове (EXE), с изключение на това, че DLL файловете не могат да се изпълняват директно в Windows. С други думи, не можете да кликнете двукратно върху DLL файл, за да го стартирате по същия начин, както бихте направили EXE файл. Вместо това, DLL файловете са предназначени да бъдат извиквани от други приложения. Всъщност, те са предназначени да бъдат призовавани от множество приложения наведнъж. Частта "връзка" на името на DLL също предлага друг важен аспект. Няколко DLL могат да бъдат свързани заедно, така че когато се извиква един DLL, се извикват и други DLL-и едновременно.

Windows себе си прави широко използване на DLL, като обиколка през C: \ Windows \ System32 папка може да ви кажа. Като пример за това, за което говорим, нека разгледаме системния файл на Windows "comdlg32.dll". Този файл, известен още като библиотеката на обикновените диалогови прозорци, съдържа код и данни за изграждането на много от общите диалогови прозорци, които виждате Прозорец-диалогови прозорци за неща като отваряне на файлове, отпечатване на документи и т.н. Инструкциите в този 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 ++ Redistributable пакети, В зависимост от приложенията, които използвате, може да имате инсталирани на компютъра няколко версии на C ++ Redistributable. Понякога може да е трудно да стесните кой е виновникът, но доброто място за стартиране е нашата статия на C ++ Redistributables, която също съдържа няколко стъпки за отстраняване на неизправности и връзки, от които можете да изтеглите най-актуалните версии директно от Microsoft.
  • Приложението с DLL дойде, Ако DLL е инсталиран заедно с приложение, а не е част от отделен пакет, най-добре е да преинсталирате приложението. Някои приложения ви позволяват да извършите ремонт вместо пълно преинсталиране. Всяка от опциите трябва да работи, тъй като ремонт обикновено търси липсващи файлове в папките за инсталиране.

Ако всичко това не успее, може да се свържете с доставчика на приложението и да поискате копие от отделен DLL файл. Някои компании са отворени за това искане; някои не са. Ако се намирате в компания, която няма да предоставя отделни файлове, те поне ще могат да предлагат други предложения за решаване на проблема ви.