Азбука программирования в Win32 API


           

ганизация взаимодействия между операционной системой


Таблица  1. Префиксы, применяемые в венгерской нотации

Префикс

Тип данных

b сх, су

dw In h i I

n s sz

BYTE (unsigned char)

short (используются как ширина и длина объектов типа

RECT и окон)

DWORD (unsigned long)

function

HANDLE

int

EONG (long)

int или short

string

string terminated by zero

WORD (unsigned int)

short (используются как координаты)

char

«КРОВЕНОСНАЯ СИСТЕМА» ПРОГРАММЫ ДЛЯ WINDOWS



Для программиста, привыкшего к DOS, непривычной является и ор­ ганизация взаимодействия между операционной системой Windows (NT или 95) и другими программами. В DOS только программы обращаются к операционной системе. Обратной связи (вызов системой прикладной программы) в DOS нет (исключения типа перехвата прерываний не в счет). В Windows с момента создания окна и до момента его уничтожения не только программа обращается к Windows, но и самое операционная система при возникновении определенных событий обращается к окну, вызывая связанную с ним оконную процедуру, или, как говорят, посылая окну сообщение. Что значит послать окну сообщение? Это, значит, записать определенную информацию о каком-либо событии в область памяти, доступную оконной процедуре. Эта область памяти, которая вмещает в себя несколько сообщений, действует по принципу стека FIFO (First Input - First Output) и называется очередью программы. В Windows прикладная программа тоже вызывает систему не напрямую, а посылает сообщения системе. Но раз системе, как и прикладной программе, посы­лаются сообщения, то, значит, существует и общесистемная очередь сообщений! Итак, мы пришли к выводу о существовании одной обще­системной очереди сообщений и очереди сообщений у каждого окна.

Неясной остается одна деталь. Откуда система знает о том, что при­шло сообщение? Каким образом сообщение из очереди становится из-

8

вестным программе? Вероятно, как программа, так и система с какой-то периодичностью обращаются к очереди и проверяют, нет ли в очереди сообщений. Здесь мы приходим ко второму выводу - у каждой програм­мы, а также и у системы должны существовать (и существуют!) циклы, в ходе которых опрашивается очередь и выбирается инфор­мация о сообщениях в ней. Остановка цикла опроса очереди приведет к «зависанию» программы, программа «умрет», если сравнивать програм­му для Windows с человеческим организмом. Если продолжать сравне­ние, то будет видно, что сообщения протекают через функцию окна, как кровь по организму. Кровь в организме прокачивается сердцем, а сооб­щения «качаются» циклом обработки сообщений.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий