Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
System programming / Конспект лекций / Лекция 7 Ресурсы часть1.doc
Скачиваний:
48
Добавлен:
08.05.2015
Размер:
79.87 Кб
Скачать

Лекция 7 Ресурсы Способы хранения данных программы

Программе, во время ее работы, требуются данные. Определение программы как некоторого реализованного алгоритма обработки данных имеет под собой основу: любой оператор языка программирования требует для своей работы данные: условие требует вычисления некоторого логического или арифметического выражения, функция рисования линии требует наличия информации о координатах и цвете линии и т.д. В некоторых случаях эти необходимые данные могут иметь сложную структуру и большой объем (например, рисунки, карты местности, справочник телефонов города и т.п.).

Для хранения данных программы и организации доступа к ним можно использовать разные механизмы. Приведем примеры некоторых из них:

  1. Хранение данных в сегменте данных программы. Данный механизм применяется для хранения переменных и сложных констант, объявленных в программе. Обеспечивает непосредственный доступ к информации в командах языка.

  2. Хранение данных на внешних носителях (в подключаемых файлах). Данный метод используется для хранения, как правило, больших объемов информации (например, рисунков). Файл подключается к программе во время ее выполнения, нужные данные считываются в программу (в память программы) и используются аналогично первому случаю. Достоинствами этого механизма являются: раздельное хранение кода и данных, возможность компиляции программы независимо от данных, возможность раздельной обработки данных и программы. Недостаток проявляется, в случаях потери одного из файлов или наличия несовместимых версий файлов. К недостаткам также можно отнести необходимость написания дополнительных частей программы для работы с файлом.

  3. Использования баз данных. Аналогично предыдущему случаю, однако программисту предоставляются дополнительные возможности по работе с данными с одной стороны, и накладываются требования к соблюдению форматов данных и протоколов обмена данными.

  4. Использование файлов ресурсов. Файл ресурсов является внешним файлом относительно текста программы на языке высокого уровня. Однако, при компиляции, данные, содержащиеся в файле ресурсов, помещаются в .ЕХЕ-файл, а при выполнении программы, загружаются в память вместе с программой.

Общие сведения о файле ресурсов

В большинство программ для 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)