Загрузка...

Структура заголовочного файла проекта.


Головной файл проекта содержит функцию WinMain. В прочие модули вы вводите свой код, создавая обработчики различных событий. В заголовочные файлы этих модулей вы вводите свои объявления. Но головной модуль, как правило, вы не трогаете и даже не видите его текст. 
Чтобы увидеть код головного файла проекта, надо выполнить в среде разработки С++ Builder команду Project | View Source. Типичный головной файл проекта имеет следующий вид:
// директивы препроцессора
#include <vcl.h>
#pragma hdrstop
// макросы, подключающие файлы ресурсов и форм
USERES(«Project1.res»);
USEFORM(«Unit1.cpp», Form1);
// функция main
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}

Начинается файл головного модуля строками, первый символ которых — #. Эти директивы подключают в данный файл тексты указанных в них файлов. Например, директива #include <vcl.h> подключает заголовочный файл Vcl.h, содержащий объявления, используемые в библиотеке визуальных компонентов C++ Builder.
После директив препроцессора в файле размещены предложения USERES и USEFORM. Это макросы, используемые для подключения к проекту файлов форм, ресурсов и др. С++ Builder автоматически формирует соответствующее предложение с макросом USEFORM для каждой формы, вносимой в проект. Первый параметр макроса содержит имя файла модуля, соответствующего форме (например, «Unit1.cpp»), а второй параметр – имя формы.
После всех этих вспомогательных предложений в файле расположена главная функция программы – WinMain. Ее первым параметром является дескриптор данного экземпляра приложения. Дескриптор – это некий уникальный указатель, позволяющий Windows разбираться в множестве одновременно открытых окон различных приложений. Второй параметр WinMain — дескриптор предыдущего экземпляра вашего приложения (если пользователь выполняет одновременно несколько таких приложений). Третий параметр является указателем на строку с нулевым символом в конце, содержащую параметры, передаваемые в программу через командную строку. Иногда такие параметры используются для переключения режимов работы программы или задания различных опций при запуске приложения из диспетчера программ или функцией WinExec. Последний параметр определяет окно приложения. Этот параметр может в дальнейшем передаваться в функцию ShowWindow.
После заголовка функции WinMain следует ее тело, заключенное в фигурные скобки. Первый исполняемый оператор тела функции – Application->Initialize инициализирует объекты компонентов данного приложения. Последующие операторы Application->CreateForm создают объекты соответствующих форм. Формы создаются в той последовательности, в которой следую эти операторы. Первая из создаваемых форм является главной.
Последний оператор – Application->Run начинает собственно выполнение программы. После этого оператора программа ждет соответствующих событий, которые и управляют ее ходом.
Перечисленные операторы тела функции WinMain заключены в блок Try, после которого следует блок Catch. Эта структура связана с обработкой так называемых исключений – аварийных ситуаций, возникающих при работе программы. Если такая аварийная ситуация возникнет, то будут выполнены операторы, расположенные в блоке catch. По умолчанию в этом блоке расположен стандартный обработчик исключений с помощью функции Application->ShowException.
Последним оператором тела функции WinMain является оператор return(0), завершающий приложение с кодом завершения 0.

Загрузка...