DLL з JPEG та іншими ресурсами
Все про програмування.
Головне меню
DLL з JPEG та іншими ресурсами
Для компіляції ресурсів, що використовуються в додатку, таких як курсори, зображення, іконки в динамічно пов'язану бібліотекуDLL, застосовується така технологія:
- складається список ресурсів у текстовому файлі з розширенням*.RC,
- цей файл, за допомогою утиліти brcc32.exe компілюється у файл ресурсу, з розширенням*. RES,
- потім цей файл у середовищі 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 і т.д.