а наша программа исключением не
Практически каждая программа ( а наша программа исключением не является) начинается со строки
#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
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий