DLL з JPEG та іншими ресурсами

Все про програмування.

Головне меню

DLL з JPEG та іншими ресурсами

Для компіляції ресурсів, що використовуються в додатку, таких як курсори, зображення, іконки в динамічно пов'язану бібліотекуDLL, застосовується така технологія:

  1. складається список ресурсів у текстовому файлі з розширенням*.RC,
  2. цей файл, за допомогою утиліти brcc32.exe компілюється у файл ресурсу, з розширенням*. RES,
  3. потім цей файл у середовищі Delphi компілюється до бібліотекиDLL

Розберемо детально цей механізм.

де рядок опису ресурсу містить: ім'я ресурсу - image1, тип ресурсу -RCDATA, з розташуванням ресурсу picture.jpg у тому самому каталозі, т.к. шлях до ресурсу не вказується.

Тип ресурсуRCDATA використовується для користувацьких ресурсів, для курсорів вказується типCURSOR, для іконок -ICON, для зображень формату BMP -BITMAP.

У Delphi підтримуються такі типи ресурсів

RT_ACCELERATOR - таблиця прискорювачів

RT_ANICURSOR - анімований курсор

RT_ANIICON - анімована ікона

RT_DIALOG - діалогове вікно

RT_FONT - шрифт

RT_FONTDIR - набір шрифтів

RT_GROUP_CURSOR - колекція курсорів

RT_GROUP_ICON - колекція іконок

RT_HTML - HTML документ

RT_MENU - меню

RT_MESSAGETABLE - таблиця повідомлень

RT_STRING - таблиця рядків

RT_VERSION - ресурс версія

Тобто. якщо ви хочете включити до бібліотеки шрифт, то у файліRC вказується типFONT.

Ресурси, включені до файлу опису ресурсів*. RC, потімпотрібно скомпілювати у файл ресурсів з розширеннямRES за допомогою рідного компілятора ресурсів Delphi-brcc32.exe (Borland Resource CommandLine Compiler 32 bit), який знаходиться в каталозі Borland\DelphiX\Bin, де X-версія Delphi. Утиліта працює у режимі командного рядка. Компіляція файлу example.RC буде виглядати так:

Після компіляції в каталозі з: \ Проекти з'явиться файл example.RES .

Потім серед Delphi створюємо бібліотекуDLL, куди включаємо наш файл ресурсів example.RES .

Для створення бібліотекиDLL у середовищі Delphi меню File вибираємо пункт New і пункт підменю Other.

У вікні вибираємо тип проектуDLL Wizard, що являє собою потрібну нам бібліотекуDLL створивши проект, вказуємо компілятор включати наш ресурс у директиві . У лістингу №1 наводиться код проекту Project1.

Потім проект компілюємо у файлDLL, вибравши в меню Project пункт Build.

Отримуємо файлDLL з однойменною назвою проекту Project1. Завантаження нашої картинкиJPG з бібліотекиDLL здійснюється в такий спосіб. Спочатку завантажуємоDLL в пам'ять (1) , створюємо потік для конкретного ресурсу (2) , що витягується з бібліотеки, створюємо об'єкт зображення (3) , здійснюємо завантаження ресурсу в потік (4) , звільняємо дескриптори потоку та бібліотеки ( 5).

Враховуючи особливості ресурсів, що витягуються зDLL, створюється той чи інший об'єкт, тобто. для растрового зображення типу BMP створюється об'єктTBitmap і т.д.