В поле Окно (см. рис. 1.2) можно также задать требуемый вид окна приложения. Информация о выбранной установке будет представлена программе четвертым параметром 0кп1соп функции 1лМ пМа1 п().

Задание командной строки

Рис. 1.2. Задание командной строки Параметр hlnstance функции WinMain() должен идентифицировать данное приложение. Он содержит адрес, начала выделенной ему области памяти. Правда, это не физический, а виртуальный адрес и по умолчанию он настроен так, что значение hlnstance равно 0x400000. Разработчик приложения на Visual С++ может изменить его, используя настройки компоновщика (в Visual С++ версии 7 необходимое значение заносится в поле Base Address).

Параллельно могут выполняться не только разные задачи, но и несколько экземпляров одного приложения. В 16-разрядных версиях Windows приложения разделяли общее адресное пространство. Если одно приложение запускалось несколько раз, то второй параметр указывал, по какому адресу было загружено это же приложение, вызванное раньше. Эта информация позволяла дублировать в оперативном запоминающем устройстве (ОЗУ) при последующих вызовах не весь программный код. В Windows 95 и в более старших версиях каждому приложению выделяется отдельное адресное пространство(они все могут начинаться с адреса 0x400000), поэтому второй параметр не используется и оставлен только для совместимости с предыдущими версиями системы.

Создание простейшего приложения

Функция MessageBox()

При выполнении приложением операций вывода на экран текста или графики изображение должно формироваться в закрепленном за ним окне. Но следует заметить, что и одно приложение может создавать несколько окон. Поэтому в функциях вывода на экран должно указываться одно из них при помощи дескриптора окна.

Подобная ситуация возникала при использовании функций обмена данными с файлом в стандартном языке С. Но в языке С для работы с файлами вводился тип данных *FILE, а в Windows для хранения дескриптора окна предусмотрен тип HWND. Программист выделяет для хранения дескриптора переменную (например, HWND hWnd), а функция создания окна hWnd^CreateWindowO заполнит дескриптор ненулевым значением. Все последующее взаимодействие программы с окном происходит при помощи этого дескриптора.


⇐ Предыдущая| |Следующая ⇒