Создание библиотек DLL, содержащих только ресурсы

В библиотеке DLL, содержащей только ресурсы, нет ничего, кроме ресурсов, таких как значки, растровые изображения, строки и диалоговые окна. Библиотеки DLL, содержащие только ресурсы, удобно использовать, когда необходимо предоставить нескольким программам общий доступ к одному и тому же набору ресурсов. С их помощью можно также легко предоставлять приложение с ресурсами, локализованными для нескольких языков. Дополнительные сведения см. в разделе "Локализованные ресурсы" в приложениях MFC: вспомогательные библиотеки DLL.

Создание библиотеки DLL, содержащей только ресурсы

Чтобы создать библиотеку DLL, содержащую только ресурсы, создайте новый проект Windows DLL (не MFC) и добавьте в него свои ресурсы.

  1. Выберите Проект Win32 в диалоговом окне Создание проекта. Введите имена проекта и решения, а затем нажмите кнопку ОК.

  2. В мастере приложений Win32 выберите Параметры приложения. В качестве типа приложения выберите DLL. В поле Дополнительные параметрывыберите Пустой проект. Нажмите кнопку Готово, чтобы создать проект.

  3. Создайте новый скрипт ресурсов, содержащий ресурсы для этой библиотеки DLL (такие как строка или меню). Сохраните файл .rc.

  4. В меню Проект выберите Добавить существующий элемент, а затем вставьте в проект новый файл .rc.

  5. Укажите параметр компоновщика /NOENTRY. Параметр /NOENTRY запрещает компоновщику привязывать ссылку на _main к библиотеке DLL, поэтому его необходимо указывать при создании библиотеки DLL, содержащей только ресурсы.

  6. Построение библиотеки DLL.

  1. В диалоговом окне Создание проекта выберите Мастер классических приложений Windows и нажмите кнопку Далее. На странице Настройка нового проекта введите имена проекта и решения, а затем нажмите кнопку Создать.

  2. В диалоговом окне Проект классического приложения Windows в разделе Тип приложения выберите Библиотека динамической компоновки. В поле Дополнительные параметрывыберите Пустой проект. Нажмите кнопку ОК, чтобы создать проект.

  3. Создайте новый скрипт ресурсов, содержащий ресурсы для этой библиотеки DLL (такие как строка или меню). Сохраните файл .rc.

  4. В меню Проект выберите Добавить существующий элемент, а затем вставьте в проект новый файл .rc.

  5. Укажите параметр компоновщика /NOENTRY. Параметр /NOENTRY запрещает компоновщику привязывать ссылку на _main к библиотеке DLL, поэтому его необходимо указывать при создании библиотеки DLL, содержащей только ресурсы.

  6. Построение библиотеки DLL.

Использование библиотеки DLL, содержащей только ресурсы

Приложение, которое использует библиотеку DLL, содержащую только ресурсы, должно вызывать LoadLibraryEx или связанную функцию, чтобы явно привязать эту библиотеку DLL. Для доступа к ресурсам следует вызывать универсальные функции FindResource и LoadResource, которые работают с ресурсами любого типа. Для доступа к конкретному ресурсу можно также использовать вызов одной из следующих функций:

  • FormatMessage

  • LoadAccelerators

  • LoadBitmap

  • LoadCursor

  • LoadIcon

  • LoadMenu

  • LoadString

Завершив использование ресурсов, приложение должно вызывать FreeLibrary.

См. также

Работа с файлами ресурсов
Создание библиотек DLL на C и C++ в Visual Studio