Что такое 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 могут отсутствовать или повреждаться? Может случиться так, что другое ошибочное приложение или обновление попытались заменить файл и потерпели неудачу или заменили его устаревшей копией. Это может быть ошибка установки вашего основного приложения или пакета, подобного .NET. Может даже случиться так, что у вас на жестком диске есть другие проблемы, например, плохие сектора, которые мешают правильной загрузке файла.
Как я могу исправить мою ошибку DLL?
Единственный способ гарантировать, что вы получите стабильную, современную и чистую DLL - это получить ее из источника, из которого она возникла. Как правило, этот источник будет:
- Ваш установочный носитель Windows. Маловероятно, что вы сможете просто скопировать файл DLL с установочного носителя, но у вас есть возможность быстро попробовать, прежде чем делать что-то столь же радикальное, как переустановка Windows. Вы можете использовать средство защиты ресурсов Windows (часто называемое средством проверки системных файлов или SFC), которое будет сканировать и исправлять поврежденные или отсутствующие системные файлы в Windows. У вас должен быть под рукой установочный носитель при запуске инструмента, на случай, если ему понадобится скопировать файл оттуда. (Если у вас нет установочного диска, вы можете скачать его здесь.)
- Пакеты Microsoft .NET Framework. Несколько версий .NET автоматически устанавливаются вместе с Windows, и многие приложения также устанавливают файлы из этих пакетов. Вы можете прочитать нашу статью о .NET Framework, в которой также есть несколько советов по поиску и устранению связанных проблем..
- Различные распространяемые пакеты Microsoft Visual C ++. В зависимости от приложений, которые вы используете, на вашем компьютере может быть установлено несколько версий распространяемого C ++. Иногда бывает сложно определить, кто из них является виновником, но для начала неплохо начать с нашей статьи о распространяемых файлах C ++, в которой также есть несколько шагов по устранению неполадок и ссылки, по которым вы можете скачать самые последние версии прямо из Microsoft..
- Приложение, с которым поставляется DLL. Если библиотека DLL была установлена вместе с приложением, а не была частью отдельного пакета, лучше всего просто переустановить приложение. Некоторые приложения позволяют выполнять ремонт вместо полной переустановки. Любой вариант должен работать, так как ремонт обычно ищет отсутствующие файлы в установочных папках..
Если все это не помогает, вы можете связаться с поставщиком приложения и запросить копию отдельного файла DLL. Некоторые компании открыты для этого запроса; некоторые нет. Если вы столкнетесь с компанией, которая не будет предоставлять отдельные файлы, они, по крайней мере, смогут предложить другие предложения для решения вашей проблемы..