Что такое DLL-файлы и почему их не хватает на компьютере?

Windows

Когда вы получаете сообщение о том, что Windows не может найти конкретный файл DLL, может быть очень заманчиво загрузить файл с одного из множества сайтов с DLL. Вот почему ты не должен этого делать.

Что такое DLL?

Прежде чем мы начнем с того, почему вы не должны загружать файлы Dynamic Link Library (DLL) из Интернета, давайте сначала посмотрим, что такое DLL-файлы. Файл DLL — это библиотека, которая содержит набор кода и данных для выполнения определенного действия в Windows. Приложения могут затем вызывать эти файлы DLL когда им нужно, чтобы эта деятельность была выполнена. DLL-файлы во многом похожи на исполняемые (EXE) файлы, за исключением того, что DLL-файлы не могут быть непосредственно выполнены в Windows. Другими словами, вы не можете дважды щелкнуть файл DLL, чтобы запустить его так же, как файл EXE. Вместо этого файлы DLL предназначены для вызова другими приложениями. На самом деле они предназначены для одновременного вызова несколькими приложениями. «Ссылочная» часть имени DLL также предлагает другой важный аспект. Несколько DLL могут быть связаны друг с другом, так что когда вызывается одна DLL, одновременно вызывается и ряд других DLL.

Windows system 32

Сама 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, и многие приложения также устанавливают файлы из этих пакетов. 
  • Различные распространяемые пакеты Microsoft Visual C ++ . В зависимости от приложений, которые вы используете, на вашем компьютере может быть установлено несколько версий распространяемого C ++. Иногда бывает сложно определить, кто из них является виновником.
  • Приложение, которое поставляется с DLL . Если библиотека DLL была установлена ​​вместе с приложением, а не была частью отдельного пакета, лучше всего просто переустановить приложение. Некоторые приложения позволяют выполнять ремонт вместо полной переустановки. Любой из этих вариантов должен работать, поскольку при восстановлении обычно ищутся отсутствующие файлы в установочных папках.

Если все это не помогает, вы можете связаться с поставщиком приложения и запросить копию отдельного файла DLL. Некоторые компании открыты для этого запроса; некоторые нет. Если вы столкнетесь с компанией, которая не будет предоставлять отдельные файлы, они, по крайней мере, смогут предложить другие предложения для решения вашей проблемы.

Geekboy
Оцените автора
Добавить комментарий