Электронный учебник:


Курс лекций:


Дополнительно:

Практикум:



Наши хостеры:

Плитка piemme defile rose в наличии в Квадрат-М.

--------------------------

Структура приложения Windows

Прикладная программа, разработанная специально для Windows95 или Windows NT называется приложением WIN32 (WIN32 application). Поэтому в дальнейшем мы будем использовать термин “приложение” вместо термина “прикладная программа”.

            Архитектура  приложения  представляет собой  архитектуру  программы, управляемой  событиями.  Ключевую  роль в организации  работы  всех  подсистем и приложений  Windows играет система сообщений. Процесс обработки сообщений представлен на рис. 1.

6

Скругленная прямоугольная выноска: Соответствующий драйвер устройства помещает аппаратное событие в очередь системного потока R I T  

Image
 

Image
Image
 

Рис. 1.  Процесс  обработки  сообщений

7

            В Windows95 и Windows NT реализована вытесняющая мультизадачность на уровне потоков. Поток (thread) описывает последовательность исполнения кода внутри процесса. В соответствии с установленным приоритетом система выделяет каждому потоку кванты процессорного времени, задаваемые системным таймером. Любому потоку в приложении соответствует некоторая функция - функция потока.  При запуске приложения создается процесс, а в его рамках – первичный поток, который и получает управление. Приложение  должно  состоять  как  минимум  из  одной  функции – функции первичного потока,  которая  при  программировании  на  языке  С  заменяет  функцию main  и должна быть определена  следующим  образом:

            int   WINAPI WinMain  (HINSTANCE   hinstance ,  HINSTANCE   hPrevinstance,

                                                       LPSTR   lpszCmdLine,        int  nCmdShow)

            { //    Тело    функции    }

Все  параметры ,  получаемые  функцией  WinMain ,  формируются  операционной системой. Параметры  hinstance  и hPrevinstance представляют  собой  соответственно  идентификаторы  текущей  и  предыдущей  копии  приложения. Приложения WIN32 функционируют в изолированных виртуальных адресных пространствах и в силу этого не имеют возможности определить через параметр hPrevinstance, не запущено ли приложение вторично. Этот параметр использовался в предыдущих версиях Windows, для приложений WIN32 он всегда равен нулю.  Параметр lpszCmdLine - дальний  указатель на строку  запуска  приложения ,  параметр nCmdShow указывает рекомендуемый приложению способ представления главного окна  при  запуске. Приложение может игнорировать этот  параметр, однако это не является хорошим стилем программирования. Обычно значение данного параметра передается без изменений функции ShowWindow для отображения на  экране главного окна приложения. Ниже приведены возможные значения параметра nCmdShow, определенные как константы с префиксами SW_ :

предыдущаяследующая