Программированиеи компьютеры /
←предыдущая следующая→
1 2 3 4
Министерство образования РФ
ИНСТИТУТ ПЕРЕПОДГОТОВКИ КАДРОВ
Уральского государственного технического университета
Кафедра микропроцессорной техники
Оценка проекта
Члены комиссии
Программа демонстрирующая иерархию окон Windows
Курсовая работа
руководитель: Кулюкин В.П.
слушатель гр.СП-923:
2001г.
Содержание:
Введение
1. Окон¬ные приложения Windows.
2. Каркасное Windows-приложение на ассемблере
3. Иерархия окон
4. «Программа демонстрирующая иерархию окон Windows»
5.Библиографический список
Введение
В подавляющем большинстве книг о программировании для Windows изложение, как правило, ведется на базе языка C/C++, реже — на базе Pascal. А что же ас¬семблер — в стороне? Конечно, нет! Мы не раз обращали ваше внимание на пра¬вильное понимание места ассемблера в архитектуре компьютера. Любая програм¬ма на языке самого высокого уровня в своем внутреннем виде представляет собой последовательность машинных кодов. А раз так, то всегда остается теоретическая возможность написать ту же программу, но уже на языке ассемблера: Непонима¬ние или недооценка такой возможности приводит к тому, что достаточно часто приходится слышать фразу, подобную следующей: «Ах, опять этот ассемблер, но ведь это что-то несерьезное!» Также трудно согласиться с тезисом, который чаще всего следует вслед за этой фразой. Суть его сводится к утверждению того, что мощность современных компьютеров позволяет не рассматривать проблему эф¬фективности функционирования программы в качестве первоочередной. Гораздо легче решить ее за счет увеличения объема памяти, быстродействия центрально¬го процессора и качества компьютерной периферии. Чем обосновать необходимость разработки Windows-приложений на языке ассем¬блера? Приведем следующие аргументы:
языке ассемблера позволяет программисту полностью контролировать создава¬емый им программный код и оптимизировать его по своему усмотрению;
компиляторы языков высокого уровня помещают в загрузочный модуль про¬граммы избыточную информацию. Эквивалентные исполняемые модули, ис¬ходный текст которых написан на языке ассемблера, имеют в несколько раз меньший размер;
при программировании на ассемблере сохраняется полный доступ к аппарат¬ным ресурсам компьютера;
приложение, написанное на языке ассемблера, как правило, быстрее загружа¬ется в оперативную память компьютера;
приложение, написанное на языке ассемблера, обладает, как правило, более высокой скоростью работы и реактивностью ответа на действия пользователя. Разумеется, эти аргументы не следует воспринимать, как некоторую рекламную кампанию в поддержку языка ассемблера. Но нельзя забывать и о том, что суще¬ствует бесконечное множество прикладных задач, ждущих своей очереди на ком¬пьютерную реализацию. Далеко не все из этих задач требуют применения тяже¬ловесных средств разработки, результатом работы которых являются столь же тяжеловесные исполняемые файлы. Многие прикладные задачи могут быть изящ¬но исполнены на языке ассемблера, не теряя привлекательности.
1. Окон¬ные приложения Windows.
Windows поддерживает два типа приложений:
оконное приложение — строится на базе специального набора функций (API), составляющих графический интерфейс пользователя (GUI, Graphic User Inter¬face). Оконное приложение представляет собой программу, которая весь вы¬вод на экран производит в графическом виде. Первым результатом работы оконного приложения является отображение на экране специального объек¬та — окна. После того как окно отображено на экране, вся работа приложения направлена на то, чтобы поддерживать его в актуальном состоянии;
Основной тип приложений в Windows — окон¬ные, поэтому с них мы и начнем знакомство с процессом разработки программ для этой операционной системы.
Любое оконное Windows-приложение имеет типовую структуру, основу которой составляет так называемое каркасное приложение. Это приложение содержит ми¬нимально необходимый программный код для обеспечения функционирования полноценного Windows-приложения. Не случайно во всех источниках в качестве первого Windows-приложения рекомендуется изучать и исследовать работу не¬которого каркасного приложения, так как именно оно отражает основные особен¬ности взаимодействия программы с операционной системой Windows. Более того, написав и отладив один раз каркасное приложение, вы будете использовать его в необходимую терминологию и сможем больше внимания уделить логике работы Windows-приложения, а не деталям его реализации.
Минимальное приложение Windows состоит из трех частей:
главной функции;
цикла обработки сообщений;
оконной функции.
Выполнение любого оконного Windows-приложения начинается с главной функ¬ции. Она содержит код, осуществляющий настройку (инициализацию) приложе¬ния в среде операционной системы Windows. Видимым для пользователя резуль¬татом работы главной функции является появление на экране графического объекта в виде окна. Последним действием кода главной функции является со¬здание цикла обработки сообщений. После его создания приложение становится пассивным и начинает взаимодействовать с внешним миром посредством специ¬альным образом оформленных данных — сообщений. Обработка поступающих приложению сообщений осуществляется специальной функцией, называемой оконной. Оконная функция уникальна тем, что может быть вызвана только из операционной системы, а не из приложения, которое ее содержит. Таким образом, Windows-приложение, как минимум, должно состоять из трех перечис¬ленных элементов.
Каркасное Windows-приложение на ассемблере содержит один сегмент данных .data и один сегмент кода . code. Сегмент стека в исходных текстах Windows-приложений непосредственно описывать не нужно. Windows выделяет для стега объем памяти, размер которого задан программистом в файле с расширением . def. Текст листинга 2 достаточно большой. Поэтому для обсуждения разобьем erо комментариями на характерные фрагменты, каждый из которых затем поясним необходимой степенью детализации.
2. Каркасное Windows-приложение на ассемблере
;Пример каркасного приложения для Win32
.386
locals ;разрешает применение локальных меток в программе
.model flat, STDCALL ;модель памяти flat Я
;STDCALL - передача параметров в стиле С (справа налево),
; вызываемая процедура чистит за собой стек Ш
include windowA.inc ;включаемый файл с описаниями базовых структур
;и констант Win32 т
;Объявление внешними используемых в данной программе функций Win32 (ASCII):
extrn GetModuleHandleA:PROC
extrn GetVersionExA:PROC В
extrn GetCommandLineA:PROC
extrn GetEnvironmentStringsA:PROC
extrn GetEnvironmentStringsA:PROC
extrn GetStartupInfoA:PROC
extrn LoadIconA:PROC
extrn
←предыдущая следующая→
1 2 3 4
|
|