Працюємо з ресурсами

Версія для друку

Якщо ви вже досить програмували під Win32, то не можете не знати, що таке ресурси. Однак у початківців програмістів цей термін нерідко викликає питання, тому, думаю, буде не зайвим нагадати (або пояснити), що ми маємо на увазі, коли говоримо "ресурс".

Ресурси - це дані, поміщені в спеціально відведену для них область виконуваного файлу. Як відомо, виконувані файли можуть містити не тільки програмний код, а й дані. В ОС такі файли Windows розбиті на секції. Якщо дані знаходяться в секції, відведеної для ресурсів, значить, це ресурси. Чим ресурси відрізняються від будь-яких інших даних усередині EXE-файлу? Власне, тільки тим, що система надає програмісту спеціальні функції для роботи з ними.

Традиційно виділяють різні типи ресурсів. До стандартних відносяться значки (іконки), курсори для миші, bitmap-картинки, рядки і таблиці рядків, комбінації "гарячих" клавіш (accelerators), меню, діалогові вікна та інформація про версії додатка. Існує також спеціальний тип ресурсів під назвою RCDATA, що дозволяє додати в програму будь-які дані, що не підходять під наведену вище класифікацію, і працювати з ними теж як зі звичайними ресурсами.

"Класичне" програмування під Win32, давно стало анахронізмом, передбачає такий підхід до створення додатків, при якому ресурси використовуються більш ніж інтенсивно. Однак в більшості середовищ розробки, з якими поставляються фірмові бібліотеки для створення призначеного для користувача інтерфейсу, ресурси задіяні не зовсім так, як пропонували творці операційної системи. Наприклад, в Borland Delphi і C ++ Builder всі форми (вікна) і все, що на них, включаючи меню і таблиці "гарячих" клавіш, знаходяться в секції RCDATA у вигляді спеціального текстового опису форми.

До того, як ресурс потрапить в виконуваний файл. він може перебувати в двох станах: у вигляді скрипта або у вигляді скомпільованого файлу ресурсів. Файли зі скриптами - текстові файли з розширенням RC, що мають всередині себе текст на мові Resource Script. Компілятори ресурсів перетворять скрипти в двійковий формат, з яким вміють працювати компоновщики виконуваних файлів. Компілятор ресурсів є практично в кожному пакеті для програмування. Наприклад, в GNU Compiler Collection для Windows цей компілятор називається Windres.exe.

Програми, які вміють працювати з ресурсами в виконуваних файлах, як правило, теж мають деякі зачатки WYSIWYG. Далі за всіх в цьому напрямі просунувся Resource Hacker, а й інші теж не так вже й погані.


Resource Builder від SiComponents

Після скачування пробної версії і її установки ви зможете запустити програму і побачити приблизно те ж саме, що містить скріншот до статті. В цілому, на мою скромну думку, інтерфейс досить зручний і симпатичний.

Працюємо з ресурсами

З редагуванням стандартних діалогових ресурсів теж ніяких проблем немає. Resource Builder підтримує як стандартні елементи, що надаються Windows, так і дозволяє здійснити підключення сторонніх бібліотек з елементами управління. Причому одна така бібліотека поставляється разом з самим Resource Builder'ом. Вона, правда, невелика і містить всього дві кнопки, але зате забезпечена вихідними текстами, так що кожен бажаючий зможе створити на її основі свою бібліотеку елементів управління.

Ресурси в програмі можна помістити в спеціальну ресурсну DLL-бібліотеку, причому для того, щоб зробити це, не потрібно ніяких сторонніх інструментів. Одним рухом руки в програму або в ресурсний файл можна додати XP Manifest (спеціальний ресурс, що забезпечує підтримку візуальних стилів Windows XP). Для зручності користувача в Resource Builder'е є підтримка багатомовного інтерфейсу, причому українською мовою включений в дистрибутив пробної версії програми. Також варто відзначити присутність "Майстра налаштувань", який можна в будь-який момент викликати з меню "Інструменти". З його допомогою можна швидко налаштувати найважливіше, не вникаючи в деталі всіх налаштувань, яких в Resource Builder'е не так вже й мало.