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


Азбука программирования в Win32 API - стр. 10


Практически каждая программа (а наша программа исключением не является) начинается со строки

#include <windows.h>

Думаю, что к этому моменту строка в пояснениях уже не нуждается. В тело программы включается файл заголовков «windows.h».

Следом за строкой идет объявление оконной процедуры:

LRESULT CALLBACK HelloWorldWndProc (HWND, TJINT, UINT, LONG);

12

ЙЧЦЧМ Ho 1

Hellfl.Wort*

Рис. l. Результат работы «HelloWorld»

Его мы разберем при рассмотрении непосредственно оконной функ-

Третьей строкой является функция WinMain(), о которой мы сейчас и поговорим.

ФУНКЦИЯ WINMATNO И ЕЕ АРГУМЕНТЫ

С легкой руки автора одной из книг, посвященных программированию для Windows, функция WinMainQ называется «стандартным заклинани­ем». Без этих или подобных строк не обходится почти ни одна програм­ма. Как правило, программирующие для Windows хранят это «заклинание» в отдельном файле. В начале разработки нового проекта в этом файле просто изменяют несколько слов или строк - и функция WinMainQ вновь готова к работе! Определение WinMainQ всегда имеет вид, подобный следующему:

ii.t WINAPI WinMain (HINSTANCF. hlnstancc. HINSTANCE hPrevInstance, Ll'STK ipszCmdParam. int nCmdShow).

Сразу видно, что функция возвращает вызвавшей ее системе целое значение и ничего интересного этот момент собой не представляет. Следующая характеристика - WINAPI - определяет порядок передачи

13

параметров при вызове процедуры. Наименование характеристики гово­рит само за себя - WINdows Application Programming Interface - применя­ются соглашения о передаче параметров, принятые в системах Windows NT и Windows'95. Если вы не планируете писать приложения на ассемб­лере, вам нужно это просто запомнить.

А вот переменные hlnsbnce и hPrevInstance заслуживают более под­робного обсуждения. Так как Windows NT и Windows'95 являются мно­гозадачными системами, то очевидно, что одна и та же программа может быть запущена несколько раз. Для того чтобы различать экземпляры программ, каждому экземпляру присваивается условный номер - хэндл (handle). Справедливости ради, надо отметить, что в Win32 присваивают­ся хэндлы чему угодно - окну, меню, курсору, иконке и т. д. Фактически хэндл - это указатель на блок памяти, в котором размешен тот или иной объект. В заголовочных файлах тип HANDLE определен как void*, а тип HINSTANCE как HANDLE. Согласно венгерской нотации, идентифика­торы переменных типа HANDLE




Начало  Назад  Вперед



Книжный магазин