
- •Вопрос 1.
- •Архитектура ос Windows
- •Основные подсистемы ос Windows
- •Вопрос 2: Интерфейсная библиотека Ntdll.Dll
- •Подсистемы окружения
- •Подсистема Windows
- •Подсистема posix
- •Подсистема os/2
- •Исполнительная подсистема
- •Уровень абстрагирования от оборудования
- •Драйверы устройств
- •Системные процессы
- •Вопрос 3:
- •Реестр 64-битной версии Windows xp
- •Где расположен реестр?
- •Архитектура реестра Windows xp
- •Типы данных реестра Windows xp
- •Вопрос 5: Нотация программного интерфейса ос Windows. Нотация программного интерфейса ос Windows.
- •Вопрос 6: инимальная программа для ос Windows с окном на экране. Создание и отображение окна. Минимальная программа для ос Windows с окном на экране.
- •Регистрация класса окна
- •Создание и отображение окна.
- •Об окнах
- •Вопрос 7: Понятие оконного сообщения. Источники сообщений. Очередь сообщений. Цикл приема и обработки сообщений. Процедура обработки сообщений. Понятие оконного сообщения.
- •Источники сообщений.
- •Очередь сообщений.
- •Цикл приема и обработки сообщений.
- •Процедура обработки сообщений.
- •Посылка синхронных сообщений окну
- •Ввод данных с манипулятора «мышь». Обработка сообщений мыши. Обработка сообщений мыши
- •Ввод данных с клавиатуры. Обработка сообщений от клавиатуры.
- •Понятие фокуса ввода.
- •Вопрос 9: Вывод информации в окно. Механизм перерисовки окна. Вывод информации в окно.
- •Область обновления - update region
- •Механизм перерисовки окна.
- •Вопрос 10:
- •Понятие ресурсов программ. Виды ресурсов. Работа с ресурсами. Меню. Окна диалога.
- •Понятие ресурсов программ. Виды ресурсов.
- •Работа с ресурсами. Меню. Окна диалога.
- •Понятие контекста устройства
- •Вывод графической информации на физическое устройство.
- •Вопрос 12: Рисование геометрических фигур. Графические инструменты. Управление цветом. Палитры цветов.
- •Вопрос 13: Растровые изображения. Вывод растровых изображений. Значки и курсоры. Вывод растровых изображений с эффектом прозрачного фона. Растровые изображения. Значки и курсоры.
- •Вывод растровых изображений.
- •Вопрос 14: Вывод текста. Логические и физические шрифты. Вывод текста.
- •Логические и физические шрифты.
- •Параметры шрифтов.
- •Вопрос 15:
- •Системы координат. Трансформации. Режимы масштабирования.
- •Системы координат. Трансформации.
- •Режимы масштабирования.
- •Вопрос 16: Организация многозадачности в ос Windows. Понятие процесса и потока. Контекст потока. Создание и завершение процессов и потоков. Организация многозадачности в ос Windows.
- •Понятие процесса и потока. Создание и завершение процессов и потоков.
- •Контекст потока.
- •Вопрос 17: Синхронизация потоков одного и того же процесса. Критические секции. Спин-блокировки. Interlocked-функции. Синхронизация потоков одного и того же процесса.
- •Спин-блокироки.
- •Критические секции.
- •Interlocked-функции.
- •Вопрос 18: Синхронизация потоков разных процессов. Объекты синхронизации: флаги, семафоры, события, ожидаемые таймеры.
- •Семафоры
- •События
- •События со сбросом вручную
- •События с авто сбросом
- •Ожидаемые таймеры
- •Вопрос 19: Объекты синхронизации: именованные и неименованные «трубы» (каналы). Именованные трубы.
- •Неименованные трубы.
- •Вопрос 20:
- •Вопрос 23: Отображение файлов в память.
Вопрос 10:
Понятие ресурсов программ. Виды ресурсов. Работа с ресурсами. Меню. Окна диалога.
Понятие ресурсов программ. Виды ресурсов.
Работа с ресурсами. Меню. Окна диалога.
Ресурсы ОС – специальный тип данных, предназначенный для представления и использования в прикладных программах стандартных элементов пользовательских интерфейсов. Стандартные типы ресурсов Windows:
Menu.
Accelerator.
Icon.
Cursor.
Bitmap
String Table.
Dialog Box.
Font.
Version Info.
Программист может создавать свои собственные типы ресурсов.
Ресурсы отделены от кода и данных.
Ресурсы обладают свойством разделяемости. Несколько программ могут использовать копию одного ресурса. Загрузка ресурса из внешнего ехе файла выполняется с помощью функции:
HGLOBAL LoadResource( HMODULE hModule, // module handle
HRSRC hResInfo // resource handle
);
В ехе файле ресурс может идентифицироваться числом (0..65536) или строкой. Ресурсы создаются на языке описания ресурсов и располагается в файлах *.rc.
С помощью компилятора ресурсов (Resourse COMPILER) создаются rc файлы. При сборке ехе файла rc файлы дописываются в ехе файл.
Акселератор – трансляция нажатий клавиатуры.
TranslateAccelerator помещается в цикл обработки сообщений. Эта функция работает на основе таблицы акселераторов (из ресурсов). Акселератор – комбинация клавиш.
Окна, выполняемые в монопольном режиме – окна диалога. В ОС окна диалога загружаются из ресурса и выполняются с помощью одной функции. В немонопольном режиме нужно потрудиться: необходимо создавать окно и его управляющие элементы. Существует проблема с передачей фокуса ввода программным способом. Это делается по-разному в окнах диалога и обычных окнах.
Вопрос 11:
Принципы построения графической подсистемы ОС Windows. Понятие контекста устройства. Вывод графической информации на физическое устройство.
Принципы построения графической подсистемы ОС Windows
WIMP - window, icon, menu, pointing device (концепция придумана Мерзугой Уильбертсом в 1980 году), впервые реализовано в компьютере Macintosh в 1984 году.
Понятие контекста устройства
Контекст устройства – это объект, в котором существует инструмент для рисования (перо, кисть, шрифт, поверхность рисования (холст), параметры задающие режимы рисования, палитра цветов).
При рисовании графического примитива используются сразу все инструменты (прямоугольник рисуется следующим образом: пером рисуется контур, толщина, цвет и вид линии определяется пером; внутреннее пространство фигуры заполняется кистью, цвет и стиль заполнения определяется кистью).
Палитра используется неявно. В контексте устройства всегда существует 1 кисть, 1 перо, 1 шрифт, 1 палитра, 1 область отображения. Для того чтобы изменить способ рисования графической фигуры (например вид контура) необходимо:
Создать новый инструмент для рисования (для нашего примера перо)
Заменить этот инструмент в контексте устройства, сохранив дескриптор старого инструмента
Выполнить рисование графической фигуры
Восстановить в контексте устройства старый инструмент
Удалить созданный
Создание инструментов осуществляется с помощью функций CreatePen, CreateBrush. Еще есть функция, которая создает карандаш на основе структуры, переданной в нее:
CreatePenIndirect(CONST LOGPEN *lplgpn);
Установка любого инструмента в контексте устройства осуществляется с помощью функции:
HANDLE SelectObject(HDC, HANDLE);
Она возвращает дескриптор предыдущего инструмента.
По дескриптору графического инструмента ОС может определить тип инструмента. Поэтому используется 1 функция для выбора инструмента. BOOL IsPen(HANDLE): вернет true, если инструмент Pen, false, если не Pen (т.е. Brush).
Удаление графического инструмента осуществляется при помощи BOOL DeleteObject(HANDLE).
Кроме динамического создания, существует возможность использования предопределенных инструментов. HANDLE GetStockObject(int).