Пакет разработчика ресурсов облегчает отслеживание ресурсов
путем организации их в проект. В самых общих словах, проект
состоит из следующих типов файлов ресурсов (содержит по крайней
мере один из этих файлов):
- Файла записей ресурсов (RC или .DLG).
- Двоичного файла ресурсов (.RES).
- Двоичного файла курсоров (.CUR).
- Двоичного файла пиктограмм (.ICO).
- Двоичного файла битового массива (.BMP).
- Двоичного файла шрифта (.FMT).
- Двоичного библиотечного файла шрифта (.FON).
- Выполняемого файла (.EXE).
- Файла динамически компонуемой библиотеки (DLL).
- Файла драйвера устройства Windows (.DRV).
Например, если вы хотите создать проект Пакета разработчика
ресурсов, содержащий только курсор, можно создать проект, кото-
рый содержит единственный файл .CUR.
Чтобы использовать все преимущества функциональных возмож-
ностей Пакета разработчика ресурсов, ваш проект Пакета разработ-
чика ресурсов должен строиться вокруг файла .RC. Например, один
файл .RC может ссылаться на несколько диалоговых окон, курсоров,
пиктограмм, битовых массивов или шрифтов.
Приведем пример набора файлов, с которыми вы можете рабо-
тать. Предположим, во-первых, что вы создали файл .RC и назвали
его MYPROJ.RC. Этот файл будет центральным файлом вашего проекта.
Вы можете добавить столько видов ресурсов, сколько хотите, но на
все в вашем проекте нужны ссылки в файле .RC.
+------------+
¦ myproj.rc ¦ Файл .RC - это основной файл проекта
¦ .......... ¦ Пакета разработчика ресурсов
¦ .......... ¦
¦ .......... ¦
¦ .......... ¦
¦ .......... ¦
¦ .......... ¦
+------------+
Рис. 2.8 NMYPROJ.RC - центральный файл описания проекта
Предположим, вы хотите создать курсор и битовый массив. Вы
можете создать эти новые ресурсы с помощью команды Resource¦New
(Ресурс¦Новый) и указать, что вы хотите записать их во внешних
файлах - файле курсора .CUR и файле битового массива .BMP. Пакет
разработчика ресурсов помещает в файл .RC ссылки, благодаря чему
вы можете использовать графический редактор Пакета разработчика
ресурсов, чтобы нарисовать курсор и битовый массив. Пакет разра-
ботчика ресурсов сохранит их в соответствующих файлах.
Диаграмма этих связей показана на следующих рисунках:
+------------+ +--------------+
¦ myproj.rc ¦ +------------------¦ mycursor.cur ¦
¦ .......... ¦ ¦ ¦ ............ ¦
¦ .......... ¦ ¦ ¦ ............ ¦
¦ ..........-+---+ ¦ ............ ¦
¦ .......... ¦ ¦ ............ ¦
¦ ..........-+---+ ¦ ............ ¦
¦ .......... ¦ ¦ ¦ ............ ¦
+------------+ ¦ +--------------+
¦
¦
¦ +--------------+
+------------------¦ mybitmap.bmp ¦
¦ ............ ¦
Файл .RC содержит ссылки на ¦ ............ ¦
двоичные данные, содержащиеся ¦ ............ ¦
в файлах .CUR и .BMP ¦ ............ ¦
¦ ............ ¦
¦ ............ ¦
+--------------+
Рис. 2.9 MYPROJ.RC указывает на файлы .CUR и .MAP
Предположим теперь, что вы хотите использовать идентификато-
ры для присваивания ресурсам смысловых имен. Если вы добавите к
проекту файл заголовка (.H), Пакет разработчика ресурсов помещает
ссылку на файл заголовка в файл .RC и может затем записывать в
файл заголовка новые идентификаторы.
+------------+ +--------------+
¦ myproj.rc ¦ +------------------¦ mycursor.cur ¦
¦ .......... ¦ ¦ ¦ ............ ¦
¦ .......... ¦ ¦ ¦ ............ ¦
¦ ..........-+---+ ¦ ............ ¦
¦ .......... ¦ ¦ ............ ¦
¦ ..........-+---+ ¦ ............ ¦
¦ .......... ¦ ¦ ¦ ............ ¦
+------------+ ¦ +--------------+
¦ ¦
¦ ¦
¦ ¦ +--------------+
¦ +------------------¦ mybitmap.bmp ¦
¦ ¦ ............ ¦
+--------------+ ¦ ............ ¦
¦ myproj.h ¦ ¦ ............ ¦
¦ ............ ¦ ¦ ............ ¦
¦ ............ ¦ ¦ ............ ¦
¦ ............ ¦ ¦ ............ ¦
¦ ............ ¦ +--------------+
¦ ............ ¦ Файл .H содержит определения
¦ ............ ¦ #define, которые вы можете использовать
+--------------+ для присваивания ресурсам смысловых
имен.
Рис. 2.10 Файл MYPROJ.RC указывает на файлы .CUR, .MAP и
.CUR
Итак, вы работаете с файлами данных ресурсов, которые можно
с помощью Пакета разработчика ресурсов скомпилировать в один файл
.RES, а затем связать его с помощью компилятора языка фирмы
Borland с существующим выполняемым файлом.
+---------------------------------------------------------------+
¦ +------------+ +--------------+ ¦
¦ ¦ myproj.rc ¦ +------------------¦ mycursor.cur ¦ ¦
¦ ¦ .......... ¦ ¦ ¦ ............ ¦ ¦
¦ ¦ ..........-+---+ ¦ ............ ¦ ¦
¦ ¦ ..........-+---+ ¦ ............ ¦ ¦
¦ ¦ .......... ¦ ¦ ¦ ............ ¦ ¦
¦ +------------+ ¦ +--------------+ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ ¦
¦ ¦ ¦ +--------------+ ¦
¦ ¦ +------------------¦ mybitmap.bmp ¦ ¦
¦ ¦ ¦ ............ ¦ ¦
¦ +--------------+ ¦ ............ ¦ ¦
¦ ¦ myproj.h ¦ ¦ ............ ¦ ¦
¦ ¦ ............ ¦ ¦ ............ ¦ ¦
¦ ¦ ............ ¦ +--------------+ ¦
¦ ¦ ............ ¦ ¦
¦ ¦ ............ ¦ ¦
¦ +--------------+ ¦
+---------------------------------------------------------------+
¦
v
+--------------+ Скомпилированный
¦ myproj.res ¦ файл ресурсов
¦ ............ ¦
¦ ............ ¦
¦ ............ ¦
+--------------+
¦
v
+--------------+ Выполняемый файл
¦ myproj.exe ¦
¦ ............ ¦
¦ ............ ¦
¦ ............ ¦
¦ ............ ¦
+--------------+
Рис. 2.11 Файл MYPROJ.RC, встроенный в выполняемый файл
Конечно на самом деле проекты Па+кета разработчика ресурсов
будут гораздо более сложными и большими,чем этот приведенный выше
пример. Некоторые этапы вы можете выполнить по-другому, например,
пропустить файл .RES и выполнить компиляцию непосредственно из
ваших исходных данных в выполняемый файл. Однако принцип проекта
остается неизменным, и после того, как вы познакомитесь с этой
идеей, создание ваших собственный проектов Пакета разработчика
ресурсов не составит для вас труда.