- •Лекция 7 Ресурсы Способы хранения данных программы
- •Общие сведения о файле ресурсов
- •Компиляция ресурсов
- •Значки и курсоры
- •Создание иконок
- •Получение описателя иконок
- •Использование иконок в программе
- •Использование альтернативных курсоров
- •Битовые образы: картинки в пикселях
- •Символьные строки
- •Использование ресурсов-символьных строк
- •Idl, "character string 1" id2, "character string 2" [определения остальных строк] }
- •Ресурсы, определяемые пользователем
Лекция 7 Ресурсы Способы хранения данных программы
Программе, во время ее работы, требуются данные. Определение программы как некоторого реализованного алгоритма обработки данных имеет под собой основу: любой оператор языка программирования требует для своей работы данные: условие требует вычисления некоторого логического или арифметического выражения, функция рисования линии требует наличия информации о координатах и цвете линии и т.д. В некоторых случаях эти необходимые данные могут иметь сложную структуру и большой объем (например, рисунки, карты местности, справочник телефонов города и т.п.).
Для хранения данных программы и организации доступа к ним можно использовать разные механизмы. Приведем примеры некоторых из них:
-
Хранение данных в сегменте данных программы. Данный механизм применяется для хранения переменных и сложных констант, объявленных в программе. Обеспечивает непосредственный доступ к информации в командах языка.
-
Хранение данных на внешних носителях (в подключаемых файлах). Данный метод используется для хранения, как правило, больших объемов информации (например, рисунков). Файл подключается к программе во время ее выполнения, нужные данные считываются в программу (в память программы) и используются аналогично первому случаю. Достоинствами этого механизма являются: раздельное хранение кода и данных, возможность компиляции программы независимо от данных, возможность раздельной обработки данных и программы. Недостаток проявляется, в случаях потери одного из файлов или наличия несовместимых версий файлов. К недостаткам также можно отнести необходимость написания дополнительных частей программы для работы с файлом.
-
Использования баз данных. Аналогично предыдущему случаю, однако программисту предоставляются дополнительные возможности по работе с данными с одной стороны, и накладываются требования к соблюдению форматов данных и протоколов обмена данными.
-
Использование файлов ресурсов. Файл ресурсов является внешним файлом относительно текста программы на языке высокого уровня. Однако, при компиляции, данные, содержащиеся в файле ресурсов, помещаются в .ЕХЕ-файл, а при выполнении программы, загружаются в память вместе с программой.
Общие сведения о файле ресурсов
В большинство программ для Windows включаются пользовательские значки, которые Windows выводит на экран в левом верхнем углу строки заголовка окна приложения. Кроме этого Windows выводит на экран значок программы в списках программ меню Start, или в панели задач в нижней части экрана, или в списке программы Windows Explorer. Некоторые программы — наиболее известными из которых являются графические программы для рисования, например Windows Paint, используют собственные курсоры мыши для отражения различных действий программы. В очень многих программах для Windows используются окна меню и диалога. Вместе с полосами прокрутки окна меню и диалога — это основа стандартного пользовательского интерфейса Windows.
Значки, курсоры, окна меню и диалога связаны между собой. Все это виды ресурсов (resources) Windows. Ресурсы являются данными, и они хранятся в .ЕХЕ файле программы, но расположены они не в области данных, где обычно хранятся данные исполняемых программ. Таким образом, к ресурсам нет непосредственного доступа через переменные, определенные в исходном тексте программы. Они должны быть явно загружены из файла с расширением .ЕХЕ в память.
Когда Windows загружает в память код и данные программы для ее выполнения, она обычно оставляет ресурсы на диске. Только тогда, когда Windows нужен конкретный ресурс, она загружает его в память. Действительно, вы могли обратить внимание на такую динамическую загрузку ресурсов при работе с Windows-программами. Когда вы первый раз вызываете окно диалога программы, Windows обычно обращается к диску для копирования ресурса окна диалога из файла с расширением .ЕХЕ программы в оперативную память.
Существуют следующие ресурсы:
• Значки или иконки (icons)
• Курсоры (cursors)
• Битовые образы (bitmaps)
• Символьные строки (character strings)
• Ресурсы, определяемые пользователем (user defined resources)
• Меню (menus)
• Быстрые комбинации клавиш (keyboard accelerators)
• Окна диалога (dialog boxes)