Заголовочные и другие вспомогательные файлы

Как уже отмечалось в гл. 1, исходный текст практически любой программы включает в себя то или иное количество директив #include, с помощью которых препроцессор подключает к исходному тексту программы необходимые для ее успешной компиляции заголовочные файлы. В зависимости от средств, используемых в компилируемой программе, состав заголовочных файлов может сильно различаться. В примерах приложений DOS (часть I этой книги) использовались заголовочные файлы с описанием функ­ций и других средств общего назначения, например, файлы conio.h, iostream.h, stdio.h и др. В приложени­ях Windows, описанным в части II, использовались, наряду с файлами общего назначения, типично "Windows'овские" заголовочные файлы windows.h и windowsx.h.

Библиотека OWL содержит огромное количество заголовочных файлов, в которых описана вся ие­рархия OWL-классов. Для успешной компиляции OWL-программы к ней необходимо подключать, по крайней мере, файлы с описанием классов, используемых в программе. В действительности используе­мые в программе классы могут ссылаться тем или иным образом другие классы, описания которых тоже могут понадобиться компилятору. Поэтому состав заголовочных файлов, которые необходимо включить в программу, оказывается не очень определенным. Задача подбора необходимых заголовочных файлов несколько облегчается тем, что в заголовочные файлы многих классов уже включены директивы #in-elude, подключающие все файлы, необходимые для работы с данным классом.

В примере 25-1 используются библиотечные классы TApplication и TFrameWindow. Описания этих классов содержатся в заголовочных файлах с достаточно наглядными именами applicat.h и framewin.h. Поэтому мы и включили в текст программы директивы

#include <owl\applicat.h> #include <owl\framewin.h>

Реально, однако, в первой директиве нет необходимости. Дело в том, что в заголовочном файле framewin.h содержится директива #include <owl\window.h> с описанием класса TWindow, а в файле win-dow.h имеется целая группа директив #include, среди которых есть и директива #include <owl\applicat.h>. Таким образом, эту директиву в прикладную программу можно не включать.

Почему перед именами заголовочных файлов указывается вышележащий каталог OWL? Дело в том, что программный пакет системы Borland C++ состоит из нескольких тысяч файлов, организованных в виде сложной иерархической структуры каталогов. Все include-файлы помещены в ветвь этой структуры с именем include, однако в этом каталоге, наряду с некоторым количеством заголовочных файлов, име­ются еще и нижележащие каталоги. Заголовочные файлы, описывающие классы OWL, помещены в под­каталог с тем же именем (рис. 25.5).


Простейшее OWL-приложение Windows 227

Поскольку в настройках Borland C++ в качестве каталога для включаемых файлов обычно указывает­ся каталог \bc5\include, а нужные нам файлы расположены ниже, в подкаталоге OWL, в программе необ­ходимо указывать оставшуюся часть пути к включаемым файлам, начиная от каталога include.

Заголовочные файлы имеют содержательные имена, и не составляет труда найти в них описание лю­бого интересующего нас класса. Например, описания целого ряда классов контекстов устройств (TDC, TPaintDC и др.) содержатся в файле dc.h, описание класса управления сообщениями TEventHandler - в файле eventhan.h, описания многочисленных классов GDI-объектов, т.е. графических инструментов (TBitmap, TBrush, TPen, и т.д.) - в файле gdiobjec.h.

Описания классов, содержащиеся в заголовочных файлах, включают в себя типы данных-членов и прототипы функций-членов. Это чрезвычайно полезная информация, помогающая разобраться в струк­туре используемых в приложении классов и в допустимых способах обращения к их функциям или дан­ным. Однако во многих случаях работа с библиотечным классом, в частности, образование от него про­изводного класса и замещение его функций требует знакомства с исходными текстами конструкторов и других функций-членов библиотечных классов. Исходные тексты классов Borland C++ хранятся в ката­логе source (см. рис. 25.5), причем тексты библиотеки OWL находятся в подкаталоге с тем же именем.

Большую пользу может принести изучение программных примеров, включенных в пакет Borland C++. Как видно из рис. 25.5, здесь можно найти примеры приложений DOS (в каталоге DOS), приложе­ний Windows, написанных в традиционной манере (в каталоге windows), OWL-приложений (в каталоге OWL) и другие.


Глава 26


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: