Глава 10

АДАПТАЦИЯ MS-DOS-ПРОГРАММ К РАБОТЕ В СРЕДЕ WINDOWS

Операционная система Windows получила повсеместное распространение и фактически стала стандартной ОС для ПК, поэтому рано или поздно Вам покажутся тесными рамки MS-DOS и Вы захотите попробовать свои силы в написании программ для Windows. Программирование для Windows существенно отличается от программирования для ДОС и его невозможно сколько-нибудь подробно рассмотреть в рамках этой книги. В этом разделе приводятся лишь минимальные сведения о том, как с помощью ВР создать программу, которая бы успешно запускалась из Windows и использовала бы некоторые возможности этой ОС.

10.1. ВВЕДЕНИЕ В WINDOWS

С позиций программиста Windows представляет собой набор системных функций, образующий так называемый API — интерфейс прикладных программ (API — Application Programming Interface}. Чтобы выполнить то или иное действие (например, открыть окно или начертить линию), программа обращается к соответствующей функции API. Функции API образуют ядро Windows.

В состав ядра входит более 800 функций, которые хранятся в многочисленных динамических библиотеках Windows. Наиболее важные из них сосредоточены в трех файлах: KERNEL.EXE (kernel — ядро), USER.EXE (user — пользователь) и GDI.EXE (Graphics Device Interface — интерфейс графических устройств). Библиотека KERNEL.EXE (на самом деле в зависимости от типа процессора используется KRNL286.EXE или KRNL386.EXE] содержит функции управления памятью, загрузки/удаления программ и обеспечивает непосредственную пода.ержку выполнения программ. Б USER.EXE сосредоточены функции управления окнами (создание окна, изменение его размеров, перемещение, удаление), другими элементами интерфейса, а также функции ввода с клавиатуры и работы с мышью. Наконец GDI.EXE обеспечивает взаимодействие с графическими устройствами (в том числе с экраном, принтерами и плоттерами).

Любая Windows— программа владеет хотя бы одним окном, чаще всего представленным в виде прямоугольной области экрана (в отличие от окон модуля CRT Турбо Паскаля окна Windows могут быть невидимыми). С каждым окном связана некоторая функция, которая называется оконной функцией. В противоположность API—функциям, служащим для связи программы с Windows, оконная функция выполняет обратную задачу и используется для передачи сообщений от Windows к программе. Этой функции Windows посылает сообщения — небольшие информационные пакеты данных. Сообщения возникают как реакция Windows на те или иные события — действия пользователя с клавиатурой или мышью, события от таймера, сигналы от внешних устройств и т.п. И хотя одновре—