Ресурсы в DLL |
![]() |
![]() |
Статьи |
Для компиляции ресурсов, используемых в приложении, таких как курсоры, изображения, иконки в динамически связанную библиотеку DLL, применяется следующая технология:
Разберем детально этот механизм. 1. Сначала в любом текстовом редакторе создадим текстовый файл с расширением *.RC , представляющего собой файл описания ресурсов. Файл содержит следующие строки вида:
например
где строка описания ресурса содержит: имя ресурса - Тип ресурса RCDATA используется для пользовательских ресурсов, для курсоров указывается тип CURSOR, для иконок - ICON, для изображений формата BMP - BITMAP. Например:
В Delphi поддерживаются следующие типы ресурсов
т.е. если вы хотите включить в библиотеку шрифт, то в файле RC указывается тип FONT. 2 . Ресурсы, включенные в файл описания ресурсов *. RC, затем нужно скомпилировать в файл ресурсов с расширением RES при помощи родного компилятора ресурсов Delphi -
После компиляции в каталоге 3. Затем в среде Delphi создаем библиотеку DLL, куда включаем наш файл ресурсов example.RES. Для создания библиотеки DLL в среде Delphi меню File выбираем пункт New и пункт подменю Other.. В появившемся окне выбираем тип проекта DLL Wizard, что представляет собой нужную нам библиотеку DLL ![]() создав проект, указываем компилятору включать наш ресурс в директиве {$R}. В листинге №1 приводится код проекта Project1.
затем проект компилируем в файл DLL, выбрав в меню Project пункт Build. Получаем файл DLL с одноименным названием проекта Project1. Загрузка нашей картинки JPG из библиотеки DLL осуществляется следующим образом. Сначала загружаем DLL в память (1), создаем поток для конкретного ресурса (2), извлекаемого из библиотеки, создаем объект изображения (3), производим загрузку ресурса в поток (4), освобождаем дескрипторы потока и библиотеки (5)
учитывая особенности извлекаемых из DLL ресурсов, создается тот или иной объект, т.е. для растрового изображения типа BMP создается объект TBitmap и т.д. |