Что такое библиотека в компьютере
В этой статье описывается, что такое библиотека динамических ссылок (DLL) и различные проблемы, которые могут возникнуть при использовании библиотек DLL. Здесь также описаны некоторые сложные проблемы, которые следует учитывать при разработке собственных библиотек DLL.
Применяется к: Windows 10 — все выпуски
Исходный номер базы знаний: 815065
Дополнительная информация
Библиотека DLL — это библиотека, содержащая код и данные, которые могут использоваться несколькими программами одновременно. Например, в Windows операционных системах библиотека DLL Comdlg32 выполняет общие функции, связанные с диалогом. Каждая программа может использовать функции, содержащиеся в этой библиотеке DLL, для реализации диалогового окна " Открыть". Это помогает повысить эффективность повторного использования кода и эффективного использования памяти.
С помощью библиотеки DLL программу можно разделить на отдельные компоненты. Например, программа учета может быть продана модулем. Каждый модуль можно загрузить в основную программу во время выполнения, если он установлен. Так как модули являются отдельными, время загрузки программы ускоряется. Модуль загружается только при запросе этой функции.
Кроме того, обновления проще применять к каждому модуле, не затрагивая другие части программы. Например, у вас может быть программа заработной платы, и налоговые ставки меняются каждый год. Если эти изменения изолированы в библиотеке DLL, можно применить обновление, не требуя сборки или установки всей программы еще раз.
В следующем списке описаны некоторые файлы, реализованные в качестве библиотек DLL в Windows операционных системах.
ActiveX элементов управления (OCX)
Примером элемента ActiveX является элемент управления календаря, который позволяет выбрать дату из календаря.
панель управления (.cpl)
Примером файла .cpl является элемент, расположенный в панель управления. Каждый элемент является специализированной библиотекой DLL.
Файлы драйвера устройства (DRV)
Примером драйвера устройства является драйвер принтера, который управляет печатью на принтере.
Разработка DLL
В этом разделе описываются проблемы и требования, которые следует учитывать при разработке собственных библиотек DLL.
Атрибуты библиотеки
Следующие атрибуты библиотеки можно изменить в Windows Explorer, диалоговом окантове управления библиотекой или в файле Описание библиотеки (*.library-ms):
- Имя
- Расположение библиотек
- Порядок расположения библиотек
- Расположение сохранения по умолчанию
Значок библиотеки может быть изменен администратором или пользователем путем непосредственного редактирования файла схемы описания библиотеки.
Сведения о создании файлов описания библиотек см. в разделе Схема описания библиотеки в MSDN.
В этом разделе описывается введение библиотек для Windows 7 и более поздних версий. Библиотеки — это функция оболочки Windows. Чтобы получить доступ к функциям Windows Оболочки, таким как библиотеки, сторонние разработчики приложений Windows Search должны сначала реализовать хранилище данных Оболочки. Дополнительные сведения см. в разделе "Реализация базовых интерфейсов объектов папок".
Этот раздел организован следующим образом:
Библиотеки
В Windows 7 и более поздних версий библиотеки являются репозиторием пользовательских данных по умолчанию. Пользователи могут просматривать свои файлы так же, как в папке, или просматривать их файлы по свойствам, таким как дата, тип и автор. В отличие от папки библиотека фактически не хранит элементы, но отображает файлы, хранящиеся в нескольких папках одновременно. Библиотеки предоставляют единую точку доступа и полнофункциональные сведения для пользователей агрегированного содержимого. Например, если пользователь содержит музыкальные файлы в папках на внешнем диске в дополнение к папке "Моя музыка ", он сможет немедленно получить доступ ко всем музыкальным файлам через библиотеку музыки.
Справочная база данных библиотеки DLL
База данных справки DLL помогает найти определенные версии библиотек DLL, установленных программным продуктом Майкрософт.
Функции для администраторов
Администраторы могут настраивать и управлять Windows библиотеками следующими способами:
- Создание настраиваемой библиотеки путем создания и развертывания файлов Library Description (*.library-ms).
- Скрыть или удалить библиотеки по умолчанию. (Сам узел Библиотеки нельзя скрыть или удалить из области навигации Windows Explorer.)
- Укажите набор библиотек, доступных пользователю по умолчанию, а затем разместите эти библиотеки для пользователей, которые являются пользователями по умолчанию.
- Укажите расположения, которые необходимо включить в библиотеку.
- Удаление расположения по умолчанию из библиотеки.
- Удалите расширенные функции библиотек, если среда не поддерживает локализованную кэшацию файлов, с помощью функций Отключения Windows библиотек, которые зависят от индексации групповой политики данных файлов. Это делает все библиотеки основными (см. требования индексации и основные библиотеки),удаляет библиотеки из области поиска меню и удаляет другие функции, чтобы избежать путаницы пользователей и потребляющих ресурсов.
Библиотеки по умолчанию и известные папки
Библиотеки по умолчанию включают:
- Документы
- Музыка
- Изображения
- Видео
Библиотеки построены на устаревших известных папках (таких как "Мои документы", "Мои фотографии" и "Моя музыка"), знакомых пользователям. Эти известные папки автоматически включаются в библиотеки по умолчанию и устанавливаются в качестве расположения сохранения по умолчанию. То есть, когда пользователи перетаскивания, копирования или сохранения файла в библиотеку документов, файл перемещается, копируется или сохраняется в папку Мои документы. Администраторы и пользователи могут изменить расположение сохранения по умолчанию.
Обходчик зависимостей
Средство "Обходчик зависимостей" может рекурсивно проверять все зависимые библиотеки DLL, используемые программой. При открытии программы в Dependency Вебере он выполняет следующие проверки:
- Обходчик зависимостей проверяет наличие отсутствующих библиотек DLL.
- Монитор зависимостей проверяет наличие недопустимых программных файлов или библиотек DLL.
- Монитор зависимостей проверяет, совпадают ли функции импорта и экспорта.
- Обходчик зависимостей проверяет наличие циклических ошибок зависимостей.
- Монитор зависимостей проверяет наличие недопустимых модулей, так как модули предназначены для другой операционной системы.
С помощью Dependency Walker можно документировать все библиотеки DLL, используемые программой. Это может помочь предотвратить и устранить проблемы DLL, которые могут возникнуть в будущем. При установке Visual Studio версии 6.0 dependency Викер находится в следующем каталоге:
drive\Program Files\Microsoft Visual Studio\Common\Tools
Как работать с библиотеками в Windows и зачем они нужны
Как это обычно бывает, многие нововведения зачастую забываются и обнаруживаются абсолютно случайно спустя много лет. Так случилось и с библиотеками, которые появились еще в Windows 7, и с тех пор есть во всех выходящих ОС от Microsoft.
Что это и зачем нужно? Ну, что такое папка знают, думаю, все пользователи ПК. Но часто бывает, что нужная информация хранится сразу в нескольких папках, а объединить их в одну по каким-то причинам не удобно. В таком случае на помощь и приходят библиотеки — по сути это виртуальное объединение нескольких папок в одну, причем пути до них при этом не меняются.
Создать библиотеку несложно — нужно открыть проводник и в его адресной строке написать слово «Библиотеки», после чего нажать Enter:
Теперь нажмите на пустом месте правой кнопкой мыши > Создать > Библиотека:
Назовите ее и перенесите в любое удобное место: например, можно сделать ярлык на нее в любой папке, или закрепить на панели быстрого доступа:
Для того, чтобы добавить в нее папку, откройте ее двойным щелком мыши и нажмите на кнопку «Добавить папку»:
Для того, чтобы добавить еще несколько папок в библиотеку, нажмите на нее правой кнопкой мыши > Свойства, и в открывшемся окне нажмите на кнопку «Добавить»:
Библиотеки — это виртуальные контейнеры для содержимого пользователей. Библиотека может содержать файлы и папки, хранящиеся на локальном компьютере или в удаленном хранилище. В Windows Explorer пользователи взаимодействуют с библиотеками таким образом, как они будут взаимодействовать с другими папками. Библиотеки построены на устаревших известных папках (таких как "Мои документы", "Мои фотографии" и "Моя музыка"), знакомых пользователям, и эти известные папки автоматически включаются в библиотеки по умолчанию и устанавливаются в качестве места сохранения по умолчанию.
Описания библиотек
Описания библиотек сохраняются на диске в виде XML-файла в папке %appdata%Microsoft\Windows\Libraryes (и, возможно, как FOLDERID_Libraries. Дополнительные сведения о FOLDERID_Libraries см. в разделе KNOWNFOLDERID.
Файлы описания библиотеки — это XML-файлы с расширением .library-ms. Они никогда не должны получать доступ к файлам или изменяться приложениями. Текст пути к папке, сохраненный в файлах описания библиотеки, не всегда является текущим. Папки библиотеки сохраняются в файле описания библиотеки в формате сериализованных двоичных ссылок оболочки . Дополнительные сведения о библиотеках и схеме описания библиотек см. в разделе "Схема описания библиотеки". Дополнительные сведения о федеративных соединителях поиска и схеме описания соединителя поиска см. в схеме описания соединителя поиска.
[ПРИМЕЧАНИЕ]
Приложения всегда должны использовать модель программирования оболочки или API IShellLibrary для использования содержимого библиотеки и никогда не пытаться вручную получить доступ к файлу описания библиотеки или изменить его.
Библиотеки файлов – особенность операционных систем Microsoft, которые позволяют просматривать в одном окне файлы, хранящиеся в разных местах. Все элементы в коллекциях Windows, на самом деле, не содержатся в одной папке, в которой они отображаются, они остаются в своём первоначальном расположении.
Библиотеки файлов доступны на всех компьютерах с Windows 10, Windows 8.1/8 и Windows 7.
Точка входа DLL
При создании библиотеки DLL можно дополнительно указать функцию точки входа. Функция точки входа вызывается, когда процессы или потоки присоединяются к библиотеке DLL или отсоединяются от библиотеки DLL. Функцию точки входа можно использовать для инициализации структур данных или для уничтожения структур данных по мере необходимости библиотеки DLL. Кроме того, если приложение является многопоточным, можно использовать локальное хранилище потоков (TLS) для выделения памяти, которая является частной для каждого потока в функции точки входа. Ниже приведен пример функции точки входа библиотеки DLL.
Когда функция точки входа возвращает значение FALSE, приложение не запускается при использовании динамической компоновки во время загрузки. При использовании динамической компоновки во время выполнения загрузка только отдельной библиотеки DLL не выполняется.
Функция точки входа должна выполнять только простые задачи инициализации и не должна вызывать другие функции загрузки или завершения библиотеки DLL. Например, в функции точки входа не следует прямо или косвенно вызывать LoadLibrary функцию или функцию LoadLibraryEx . Кроме того, не следует вызывать функцию FreeLibrary при завершении процесса.
В многопоточных приложениях убедитесь, что доступ к глобальным данным DLL синхронизирован (потокобезопасный), чтобы избежать возможного повреждения данных. Для этого используйте TLS для предоставления уникальных данных для каждого потока.
Преимущества DLL
В следующем списке описаны некоторые преимущества, которые предоставляются, когда программа использует библиотеку DLL:
Использует меньше ресурсов
Если несколько программ используют ту же библиотеку функций, библиотека DLL может уменьшить дублирование кода, загруженного на диск и в физической памяти. Это может значительно повлиять на производительность не только программы, выполняемой на переднем плане, но и других программ, работающих в Windows операционной системе.
Повышение уровня модульной архитектуры
Библиотека DLL помогает повысить уровень разработки модульных программ. Она помогает разрабатывать крупные программы, для которых требуется несколько языковых версий, или программы, для которых требуется модульная архитектура. Примером модульной программы является программа учета с множеством модулей, которые можно динамически загрузить во время выполнения.
Упрощает развертывание и установку
Если функции в библиотеке DLL требуется обновление или исправление, для развертывания и установки библиотеки DLL не требуется повторное связывание программы с библиотекой DLL. Кроме того, если несколько программ используют ту же библиотеку DLL, все эти программы будут пользоваться преимуществами обновления или исправления. Эта проблема может возникать чаще при использовании библиотеки DLL сторонних разработчиков, которая регулярно обновляется или исправлена.
Включить сетевую папку в коллекцию Windows
Чтобы включить сетевую папку в коллекцию Windows, мы должны сначала добавить её в поисковый индекс. Если папка уже проиндексирована на ПК, на котором она была заархивирована, её можно будет включить непосредственно в коллекцию.
- Одновременно нажмите клавиши Win и E на клавиатуре компьютера.
- В области навигации нажмите Сеть.
- Наведите курсор мыши на папку, которую мы хотим включить в коллекцию.
- Щелкните правой кнопкой мыши и выберите Добавить в библиотеку.
- Чтобы завершить, нажмите на одну из доступных библиотек или выберите Создать новую библиотеку.
Перенаправление папок
Просмотр коллекций Windows на панели навигации
Если вы не хотите использовать команду «Выполнить» или предпочитаете более быстрый доступ к коллекциям Windows, то можете выбрать их просмотр непосредственно в области навигации, левая панель присутствует в каждой папке операционной системы.
- Нажмите клавиши Win (кнопка с логотипом Windows) и E одновременно.
- В верхней ленте перейдите на вкладку Вид.
- Нажмите Область навигации.
В появившемся меню нажмите Показать библиотеки.
Если на панели навигации вы не хотите видеть все предопределенные библиотеки, а только некоторые из них, поступите таким образом:
- Откройте папку Библиотеки.
- Разместите указатель мыши на ярлыке библиотеки, которую вы хотите скрыть и щелкните правой кнопкой мыши.
- В появившемся меню выберите Не показывать на панели навигации.
- Чтобы снова отобразить коллекцию, нажмите Показать на панели навигации.
Включить папку в коллекцию Windows
Давайте теперь посмотрим, как добавлять другие папки в новую библиотеку Windows.
- Наведите курсор мыши на папку, которую хотите включить в коллекцию.
- Щелкните правой кнопкой мыши.
- Выберите Добавить в библиотеку.
- Вы можете выбрать одну из доступных коллекций или выбрать Создать новую библиотеку.
Важно: вы можете включить в коллекцию максимум 50 папок. Если мы включим папку в коллекцию, а затем удалим папку из её исходного расположения, папка больше не будет доступна в коллекции.
Создать новую библиотеку Windows
Мы можем создавать новые коллекции файлов, как нам угодно.
Давайте посмотрим, как создать новую коллекцию Windows.
- Открываем папку Библиотеки.
- Щелкаем правой кнопкой мыши в пустой области окна.
- Выбираем Создать → Библиотека.
- Вводим название для коллекции и нажимаем клавишу Enter на клавиатуре компьютера.
Контейнеры оболочки, отличные от файловой системы
Библиотеки могут содержать контейнеры оболочки локальной файловой системы, такие как компьютер и панель управления, но содержат элементы файловой системы. Папки и содержимое библиотеки можно перечислить и получить к ним доступ с помощью API для файлов и папок файловой системы в предыдущих операционных системах. Если ваше приложение сильно зависит от определенных API файловой системы, api IShellLibrary можно использовать для получения путей файловой системы папок и файлов в библиотеках. В большинстве случаев рекомендуется использовать модель программирования оболочки для поддержки нескольких версий Windows и гибкости элементов. Дополнительные сведения см. в разделе " Навигация по пространству имен оболочки".
Как получить доступ к библиотекам Windows
Коллекции Windows можно найти в пользовательской папке. В Windows 10 библиотеками по умолчанию являются папки Документы, Изображения, Музыка,Видео.
Давайте посмотрим, как получить доступ к коллекциям Windows.
- Нажимаем на клавиатуре компьютера клавишу Win (это клавиша с логотипом Windows) и R одновременно. Откроется окно «Выполнить».
- В строке Открыть: введите shell:libraries и нажмите OK .
- Откроется папка «Библиотеки».
Если вместо этого мы хотим получить прямой доступ к конкретной коллекции через окно «Выполнить», введите:
- shell:documentslibrary для доступа к библиотеке документов
- shell:savedpictureslibrary для доступа к коллекции сохраненных изображений (только для Windows 10)
- shell:pictureslibrary для доступа к коллекции изображений
- shell:musiclibrary для доступа к коллекции музыки
- shell:camerarolllibrary для доступа к коллекции Camera Roll (только в Windows 10)
- shell:videoslibrary для доступа к коллекции видео
Экспорт функций DLL
Чтобы экспортировать функции DLL, можно добавить ключевое слово функции в экспортированные функции DLL или создать файл определения модуля (DEF), в котором перечислены экспортированные функции DLL.
Чтобы использовать ключевое слово функции, необходимо объявить каждую функцию, которую требуется экспортировать, с помощью следующего ключевого слова:
__declspec(dllexport)
Чтобы использовать экспортированные функции DLL в приложении, необходимо объявить каждую функцию, которую требуется импортировать, с помощью следующего ключевого слова: __declspec(dllimport)
Как правило, для разделения инструкции экспорта и инструкции используется один файл заголовка с оператором define ifdef и оператором import .
Вы также можете использовать файл определения модуля для объявления экспортированных функций DLL. При использовании файла определения модуля не нужно добавлять ключевое слово функции в экспортированные функции DLL. В файле определения модуля объявляется инструкция LIBRARY и EXPORTS инструкция для библиотеки DLL. Следующий код является примером файла определения.
Аннотация
В этой статье описаны методы динамической компоновки, зависимости DLL, точки входа DLL, экспорт функций DLL и средства устранения неполадок DLL.
Для Windows операционных систем большая часть функциональных возможностей операционной системы предоставляется библиотекой DLL. Кроме того, при запуске программы в одной из Windows операционных систем большая часть функций программы может быть предоставлена библиотеками DLL. Например, некоторые программы могут содержать множество различных модулей, а каждый модуль программы содержится и распространяется в библиотеках DLL.
Использование библиотек DLL помогает повысить модульность кода, повторное использование кода, эффективное использование памяти и сокращение места на диске. Таким образом, операционная система и программы загружаются быстрее, выполняются быстрее и занимать меньше места на диске на компьютере.
Если программа использует библиотеку DLL, проблема, которая называется зависимостью, может привести к тому, что программа не будет выполняться. Когда программа использует библиотеку DLL, создается зависимость. Если другая программа перезаписывает и прерывает эту зависимость, исходная программа может не запуститься успешно.
Точки входа пользовательских данных
Библиотеки по умолчанию (например , "Мои документы", "Мои рисунки" и т. д.) являются эквивалентом "Известная папка". Библиотеки по умолчанию предоставляют пользователям знакомые точки входа, но поскольку содержимое библиотеки не ограничивается библиотеками содержимого известных папок, дает пользователям больше свободы для определения места хранения документов и носителей. Библиотеки предоставляются через пространство имен оболочки (источник данных оболочки). Приложение может предоставить пользователям те же знакомые точки входа для своих данных, включив осведомленность о библиотеке и просмотр.
Сохранение местоположений для библиотек по умолчанию
Каждая библиотека имеет расположение сохранения по умолчанию. Файлы сохраняются или копируются в этом расположении, если пользователь выбирает сохранить или скопировать файл в библиотеку, а не определенное расположение в библиотеке. Известные папки — это расположения сохранения по умолчанию; однако пользователи могут выбрать другое расположение сохранения. Если пользователь удаляет расположение сохранения по умолчанию из библиотеки, следующее расположение автоматически выбирается в качестве нового расположения сохранения по умолчанию. Если в библиотеке пусто расположения или не удается сохранить все включенные расположения, операция сохранения сбой.
Пример библиотеки DLL и приложения
В Visual C++ 6.0 можно создать библиотеку DLL, выбрав тип проекта библиотеки win32 Dynamic-Link или тип проекта MFC AppWizard (dll ).
Ниже приведен пример библиотеки DLL, созданной в Visual C++ с помощью типа проекта Dynamic-Link Win32 .
Ниже приведен пример проекта приложения Win32 , который вызывает экспортируемую функцию DLL в библиотеке DLL SampleDLL.
При динамической компоновке во время загрузки необходимо связать библиотеку импорта SampleDLL.lib, которая создается при сборке проекта SampleDLL.
При динамической компоновки во время выполнения для вызова экспортированной функции DLL используется код SampleDLL.dll, аналогичный следующему коду.
При компиляции и связывании приложения SampleDLL операционная система Windows ищет библиотеку DLL SampleDLL в следующих расположениях в следующем порядке:
Системная Windows папка
Функция GetSystemDirectory возвращает путь к Windows системной папке.
Функция GetWindowsDirectory возвращает путь к Windows папке.
Файл сборки содержит манифест сборки, метаданные типа, код MSIL и другие ресурсы. Манифест сборки содержит метаданные сборки, которые содержат все сведения, необходимые для самостоятельного описания сборки. В манифест сборки включены следующие сведения:
- Имя сборки
- Сведения о версии
- Сведения о языке и региональных параметрах
- Сведения о строгом имени
- Список сборок файлов
- Справочные сведения о типе
- Сведения о ссылочных и зависимых сборках
Код MSIL, содержащийся в сборке, не может выполняться напрямую. Вместо этого выполнением кода MSIL управляет среда CLR. По умолчанию при создании сборки сборка является закрытой для приложения. Чтобы создать общую сборку, необходимо назначить сборке строгое имя, а затем опубликовать сборку в глобальном кэше сборок.
В следующем списке описаны некоторые функции сборок по сравнению с функциями библиотек DLL Win32.
При создании сборки все сведения, необходимые среде CLR для запуска сборки, содержатся в манифесте сборки. Манифест сборки содержит список зависимых сборок. Таким образом, среда CLR может поддерживать согласованный набор сборок, используемых в приложении. В библиотеках DLL Win32 нельзя поддерживать согласованность между набором библиотек DLL, используемых в приложении при использовании общих библиотек DLL.
В манифесте сборки сведения о версии записываются и применяются средой CLR. Кроме того, политики версий позволяют принудительно применять использование конкретной версии. В библиотеках DLL Win32 управление версиями не может применяться операционной системой. Необходимо убедиться, что библиотеки DLL поддерживают обратную совместимость.
Сборки поддерживают параллельное развертывание. Одно приложение может использовать одну версию сборки, а другое — другую. Начиная с Windows 2000, параллельное развертывание поддерживается путем поиска библиотек DLL в папке приложения. Кроме того, Windows защиты файлов предотвращает перезапись или замену системных библиотек DLL неавторизованными агентами.
Автономная и изоляция
Приложение, разработанное с помощью сборки, может быть автономным и изолированным от других приложений, работающих на компьютере. Эта функция помогает создавать установки без влияния.
Сборка выполняется с разрешениями безопасности, предоставленными в манифесте сборки и управляемыми средой CLR.
Независимый от языка
Будь в курсе последних новостей из мира гаджетов и технологий
Коллекции папок
Библиотеки — это пользовательские коллекции содержимого. Windows индексы поиска поддерживают папки, если они включены в библиотеки. Это обеспечивает мгновенный поиск и представления размещения стека на основе свойств в библиотеках.
Содержимое библиотеки
В том числе папка в библиотеке физически не перемещается или не меняет расположение хранения файлов или папок; библиотека — это представление в этих папках. Однако пользователи, взаимодействующие с файлами в библиотеке, копируют, перемещают и удаляют сами файлы, а не копии этих файлов.
Подробнее о библиотеках
Ниже приводится важная информация о библиотеках, которые необходимо понять для успешного управления предприятием.
Поддерживаемые расположения хранилища
В следующей таблице покажите, какие расположения поддерживаются в Windows библиотеках.
* Для акций, индексируется на ведомственом сервере, Windows поиск хорошо работает в группах или на сервере домена, который имеет аналогичные характеристики серверу workgroup. Например, Windows поиск хорошо работает на одном ведомственом сервере с раздельным доступом со следующими характеристиками:
- Ожидаемая максимальная нагрузка — четыре одновременно запрашиваемых запроса.
- Ожидаемая индексация корпусов — это не более одного миллиона документов.
- Пользователи напрямую имеют доступ к серверу. То есть сервер не доступен через пространства имен DFS.
- Пользователи не перенаправляются на другой сервер в случае сбоя. То есть серверные кластеры не используются.
Поддерживаемые папки в библиотеках
Для поддержки папок в библиотеках они должны индексироваться на локальном компьютере и индексироваться либо на удаленном компьютере Windows, либо индексироваться на сервере с файлами, индексируемыми с помощью поиска Windows.
Неподдерживаемые папки не добавляются пользователями в диалоговом окне управления библиотекой Windows. Если неиндексированные удаленные папки добавляются в библиотеку с помощью API IShellLibrary, взаимодействие с библиотекой вернется в режим Сейф библиотеки. В режиме Сейф, такие как представления размещения стека на основе свойств, предложения фильтров и поддержка поиска меню "Пуск", удаляются из затронутой библиотеки.
В следующей таблице перечислены папки, включенные в библиотеки с помощью диалогового окна управления библиотекой Windows Explorer, и папки, которые не поддерживаются в режиме Сейф:
Поддерживаемые папки | Неподдерживаемые папки |
---|---|
Фиксированные и внешние жесткие диски NTFS и FAT32 | Съемные диски (например, отпечатки и SD-карты) |
Общие папки, индексированные с помощью поиска Windows (например, серверов отделов и компьютеров под управлением Windows 10, а также выпуск Windows 7 Домашняя версия) | Съемные носители (например, компакт-диски и DVD-диски) |
Общие папки, доступные в автономном режиме (например, перенаправленные мои документы, кэш на стороне клиента) | Сетевые ресурсы, которые не доступны как в автономном режиме, так и в удаленном индексировании (например, диски NAS) |
Недоступно | Другие источники данных (например, Microsoft SharePoint, Microsoft Exchange, Microsoft OneDrive и т. д.) |
Выберите местоположение по умолчанию для новой коллекции
Перед копированием, перемещением или сохранением файлов в новой коллекции, которую мы только что создали, мы должны включить любую папку в коллекцию, чтобы коллекция имела путь к хранилищу файлов. Эта папка станет папкой, в которую будут сохраняться файлы из новой коллекции.
- Дважды щелкните новую коллекцию и нажмите «Добавить папку».
- Выберите папку и нажмите «Добавить папку».
Универсальный решатель проблем DLL
Средство DLL Universal Problem Solver (DUPS) используется для аудита, сравнения, документирование и отображения сведений о библиотеке DLL. В следующем списке описаны служебные программы, из которых создается средство DUPS.
Эта служебная программа перечисляет все библиотеки DLL на компьютере и регистрирует сведения в текстовом файле или файле базы данных.
Эта программа сравнивает библиотеки DLL, перечисленные в двух текстовых файлах, и создает третий текстовый файл, содержащий различия.
Эта служебная программа загружает текстовые файлы, созданные с помощью Dlister.exe и Dcomp.exe в базу данных DLLHell.
Эта служебная программа предоставляет версию графического пользовательского интерфейса (GUI) Dtxt2DB.exe.
Восстановить библиотеки Windows по умолчанию
Чтобы завершить руководство, мы объясним, как восстановить стандартные библиотеки Windows, если они были повреждены или удалены по ошибке.
Storage-Backed
Библиотеки — это коллекции папок хранения. Пользователи могут сохранять и копировать файлы в библиотеку напрямую, так как каждая библиотека имеет расположение сохранения по умолчанию для отправки этих файлов. Для библиотек по умолчанию это пользователь "Известная папка", включенная в библиотеку (например , "Мои документы") или первая папка, добавленная в пользовательскую библиотеку. Это папка, в которой файлы отправляются, когда пользователь перетаскивает файлы в библиотеку или сохраняет их в библиотеке с помощью общего диалогового окна файлов. Пользователь может изменить расположение сохранения библиотеки по умолчанию в любой момент, но если она удаляет расположение сохранения по умолчанию, следующая папка в библиотеке будет выбрана в качестве нового расположения сохранения. Пользователи могут дополнительно сохранять файлы в любой папке, к которым у них есть разрешения, включенные в библиотеку.
Функции для пользователей
Windows архивы имеют полный поиск контента и богатые метаданные. Библиотеки предоставляют пользователям следующие преимущества:
- Сводка контента из нескольких местоположений хранилища в единую презентацию.
- Включить пользователям стек и группировать содержимое библиотеки на основе метаданных.
- Включить быстрый полный текст поиска в нескольких местах хранения, Windows Explorer или меню .
- Поддержка настраиваемых предложений по поиску фильтра на основе типов файлов, содержащихся в библиотеке.
- Позволяет пользователям создавать новые библиотеки и указать, какие папки они хотят включить.
Зависимости DLL
Если программа или библиотека DLL использует функцию DLL в другой библиотеке DLL, создается зависимость. Программа больше не является автономной, и если зависимость нарушена, у нее могут возникнуть проблемы. Например, программа может не выполняться, если выполняется одно из следующих действий:
- Зависимая библиотека DLL обновляется до новой версии.
- Зависимые библиотеки DLL исправлены.
- Зависимая библиотека DLL перезаписывается более ранней версией.
- Зависимая библиотека DLL удаляется с компьютера.
Эти действия называются конфликтами DLL. Если обратная совместимость не применяется, возможно, программа не будет успешно запущена.
В следующем списке описываются изменения, которые были внесены в Windows 2000 и более поздних Windows операционных системах, чтобы свести к минимуму проблемы с зависимостями.
Windows защиты файлов
В Windows защиты файлов операционная система предотвращает обновление или удаление библиотек DLL системы неавторизованными агентами. При попытке установки программы удалить или обновить библиотеку DLL, определенную как системную библиотеку DLL, Windows служба защиты файлов будет искать допустимую цифровую подпись.
Частные библиотеки DLL
Частные библиотеки DLL позволяют изолировать программу от изменений, внесенных в общие библиотеки DLL. Частные библиотеки DLL используют сведения .local о версии или пустой файл для принудительного применения версии библиотеки DLL, используемой программой. Чтобы использовать частные библиотеки DLL, найдите библиотеки DLL в корневой папке программы. Затем для новых программ добавьте сведения о версии в библиотеку DLL. Для старых программ используйте пустой .local файл. Каждый метод указывает операционной системе использовать частные библиотеки DLL, расположенные в корневой папке программы.
Требования к индексации и "Базовые" библиотеки
Некоторые функции библиотеки зависят от содержимого проиндексировать библиотеки. Расположения библиотек должны быть доступны для локальной индексации или индексироваться в соответствии с протоколом Windows индексации. Если индексация не включена для одного или нескольких местоположений в библиотеке, вся библиотека возвращается к базовым функциям:
Чтобы избежать этого ограниченного функционала, все расположения в библиотеке должны индексироваться локально или удаленно. Когда пользователи добавляют локальные папки в библиотеки, Windows добавляет расположение в область индексации и индексирует содержимое. Удаленные расположения, которые не индексируются удаленно, могут быть добавлены в локальный индекс с помощью синхронизации файлов в автономном режиме. Это дает пользователю преимущества локального хранилища, несмотря на удаленное расположение. Создание папки "Всегда доступно в автономном режиме" создает локализованную копию файлов папки, добавляет эти файлы в индекс и поддерживает синхронизацию локальных и удаленных копий. Пользователи могут вручную синхронизировать расположения, которые не индексируются удаленно и не используют перенаправление папок, чтобы получить преимущества локальной индексации.
Инструкции по включению индексации см. в пункте Как включить индексацию расположения библиотек.
Если среда не поддерживает кэшировать файлы локально, необходимо включить функции Windows библиотек, которые зависят от индексации групповой политики данных файлов. Это делает все библиотеки базовыми. Дополнительные сведения см. в групповых политиках Windows поиска, просмотра и организации.
Как работают библиотеки файлов Windows
Предположим, мы хотим создать фотоальбом из файлов, некоторые из которых хранятся на рабочем столе, другие – на внешнем жестком диске, третьи – в сети. Чтобы собрать все фотографии в одном окне, мы должны открыть каждую папку и переместить все содержащиеся в ней файлы в папку, которую мы хотим использовать для сбора элементов.
Используя библиотеки Windows, всё, что нам нужно сделать, – это создать новую коллекцию и сообщить Windows, какие папки следует включить в неё. Таким образом, фотографии будут оставаться физически в папках, в которых они были сохранены, но все они будут отображаться вместе в одном окне.
Коллекции Windows очень полезны, когда нам нужно собирать большие коллекции элементов, распределенных в общих сетевых папках или на внешних жестких дисках, а работать нужно на локальном диске. Они также могут упростить работу, организованную в групповых проектах, например, создав коллекцию, включающую локальные проекты и общие папки, в которые можно сохранить окончательные версии.
Сокрытие библиотек по умолчанию
Пользователи или администраторы могут скрывать или удалять библиотеки по умолчанию, хотя узел библиотек в области навигации нельзя скрыть или удалить. Скрытие библиотеки по умолчанию предпочтительнее удаления, так как такие приложения, как проигрыватель Windows Media полагаются на библиотеки по умолчанию, и повторно создадут их, если они не существуют на компьютере. Узнайте, как скрыть библиотеки по умолчанию для инструкций.
Средства устранения неполадок библиотеки DLL
Для устранения неполадок с библиотекой DLL доступно несколько средств. Ниже приведены некоторые из этих средств.
Типы библиотек DLL
При загрузке библиотеки DLL в приложение два метода связывания позволяют вызывать экспортированные функции DLL. Два метода связывания — динамическое связывание во время загрузки и динамическое связывание во время выполнения.
Динамическое связывание во время загрузки
При динамической компоновки во время загрузки приложение выполняет явные вызовы экспортированных функций DLL, таких как локальные функции. Чтобы использовать динамическую компоновку во время загрузки, предоставьте файл заголовка (H) и файл библиотеки импорта (LIB) при компиляции и связывание приложения. При этом компоновщик предоставит системе сведения, необходимые для загрузки библиотеки DLL и разрешения экспортированных расположений функций DLL во время загрузки.
Динамическое связывание во время выполнения
При динамической компоновки LoadLibrary LoadLibraryEx во время выполнения приложение вызывает функцию или функцию для загрузки библиотеки DLL во время выполнения. После успешной загрузки GetProcAddress библиотеки DLL используйте функцию для получения адреса экспортированной функции DLL, которую требуется вызвать. При использовании динамической компоновки во время выполнения файл библиотеки импорта не требуется.
В следующем списке описаны критерии приложения для использования динамической компоновки во время загрузки и использования динамической компоновки во время выполнения:
Если важна начальная производительность запуска приложения, следует использовать динамическое связывание во время выполнения.
При динамической компоновки во время загрузки экспортированные функции DLL являются локальными функциями. Это упрощает вызов этих функций.
При динамической компоновки во время выполнения приложение может выполнять ветвь для загрузки различных модулей по мере необходимости. Это важно при разработке версий на нескольких языках.
Читайте также: