Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Программа демонстрирующая иерархию окон Windows



 Другие рефераты
Программа Adobe Photoshop Программа Mathematics Программа на Delphi Программа по информатике и вычислительной технике

Министерство образования РФ



                       ИНСТИТУТ ПЕРЕПОДГОТОВКИ КАДРОВ

            Уральского государственного технического университета


                      Кафедра микропроцессорной техники



                                                              Оценка проекта
                                                              Члены комиссии



               Программа демонстрирующая иерархию окон Windows


                               Курсовая работа



    руководитель:                                   Кулюкин В.П.

    слушатель гр.СП-923:



2001г.

                                 Содержание:



    Введение

1. Оконные приложения Windows.
2. Каркасное Windows-приложение на ассемблере
3. Иерархия окон
4. «Программа демонстрирующая иерархию окон Windows»
5.Библиографический список



                                  Введение


    В  подавляющем  большинстве  книг  о   программировании   для   Windows
изложение, как правило, ведется на базе языка C/C++, реже — на базе  Pascal.
А что же ассемблер — в стороне?  Конечно,  нет!  Мы  не  раз  обращали  ваше
внимание на правильное понимание места ассемблера в архитектуре  компьютера.
Любая программа на языке самого высокого  уровня  в  своем  внутреннем  виде
представляет собой последовательность машинных кодов. А раз так,  то  всегда
остается теоретическая возможность написать  ту  же  программу,  но  уже  на
языке ассемблера: Непонимание или недооценка такой  возможности  приводит  к
тому, что достаточно часто приходится  слышать  фразу,  подобную  следующей:
«Ах, опять этот ассемблер, но ведь это  что-то  несерьезное!»  Также  трудно
согласиться с тезисом, который чаще всего  следует  вслед  за  этой  фразой.
Суть его сводится к утверждению того, что мощность  современных  компьютеров
позволяет   не   рассматривать   проблему   эффективности   функционирования
программы в  качестве  первоочередной.  Гораздо  легче  решить  ее  за  счет
увеличения объема памяти, быстродействия центрального процессора и  качества
компьютерной периферии. Чем  обосновать  необходимость  разработки  Windows-
приложений на языке ассемблера? Приведем следующие аргументы:
 >   языке  ассемблера  позволяет  программисту   полностью   контролировать
   создаваемый им программный код и оптимизировать его по своему усмотрению;
 >  компиляторы  языков  высокого  уровня  помещают  в  загрузочный   модуль
   программы  избыточную  информацию.  Эквивалентные   исполняемые   модули,
   исходный текст которых написан на языке ассемблера, имеют в несколько раз
   меньший размер;
 > при программировании на ассемблере сохраняется полный доступ к аппаратным
   ресурсам компьютера;
 >  приложение,  написанное  на  языке  ассемблера,  как  правило,   быстрее
   загружается в оперативную память компьютера;
 > приложение, написанное на языке ассемблера, обладает, как правило,  более
   высокой скоростью работы и реактивностью ответа на действия пользователя.
   Разумеется,  эти  аргументы  не  следует  воспринимать,   как   некоторую
   рекламную кампанию в поддержку языка ассемблера. Но нельзя забывать  и  о
   том, что существует бесконечное множество прикладных задач, ждущих  своей
   очереди на компьютерную реализацию. Далеко не все из этих  задач  требуют
   применения тяжеловесных средств разработки,  результатом  работы  которых
   являются столь  же  тяжеловесные  исполняемые  файлы.  Многие  прикладные
   задачи  могут  быть  изящно  исполнены  на  языке  ассемблера,  не  теряя
   привлекательности.

                       1. Оконные приложения Windows.

Windows поддерживает два типа приложений:
 > оконное приложение — строится на базе специального набора функций  (API),
   составляющих  графический  интерфейс  пользователя  (GUI,  Graphic   User
   Interface). Оконное приложение представляет собой программу, которая весь
   вывод на экран производит в графическом виде. Первым  результатом  работы
   оконного приложения является отображение на экране специального объекта —
   окна. После того как окно отображено на  экране,  вся  работа  приложения
   направлена на то, чтобы поддерживать его в актуальном состоянии;
Основной тип приложений в Windows — оконные,  поэтому  с  них  мы  и  начнем
знакомство с процессом разработки программ для этой операционной системы.
Любое оконное Windows-приложение имеет  типовую  структуру,  основу  которой
составляет так называемое  каркасное  приложение.  Это  приложение  содержит
минимально необходимый  программный  код  для  обеспечения  функционирования
полноценного Windows-приложения. Не случайно во всех источниках  в  качестве
первого  Windows-приложения  рекомендуется  изучать  и  исследовать   работу
некоторого каркасного приложения,  так  как  именно  оно  отражает  основные
особенности взаимодействия программы с операционной системой Windows.  Более
того,  написав  и  отладив  один  раз  каркасное   приложение,   вы   будете
использовать  его  в  необходимую  терминологию  и  сможем  больше  внимания
уделить логике работы Windows-приложения, а не деталям его реализации.
Минимальное приложение Windows состоит из трех частей:
 >  главной функции;
 >  цикла обработки сообщений;
 >  оконной функции.
Выполнение любого оконного Windows-приложения начинается с главной  функции.
Она содержит код,  осуществляющий  настройку  (инициализацию)  приложения  в
среде операционной системы Windows.  Видимым  для  пользователя  результатом
работы главной функции является появление на экране графического  объекта  в
виде окна. Последним действием кода главной функции является создание  цикла
обработки сообщений. После его создания приложение  становится  пассивным  и
начинает взаимодействовать с внешним миром посредством  специальным  образом
оформленных данных — сообщений. Обработка поступающих  приложению  сообщений
осуществляется специальной функцией,  называемой  оконной.  Оконная  функция
уникальна тем, что может быть вызвана только из операционной системы,  а  не
из приложения, которое ее содержит. Таким образом,  Windows-приложение,  как
минимум, должно состоять из трех перечисленных элементов.
Каркасное Windows-приложение на  ассемблере  содержит  один  сегмент  данных
.data и один сегмент кода . code. Сегмент стека в исходных текстах  Windows-
приложений непосредственно описывать не нужно. Windows  выделяет  для  стега
объем памяти, размер которого задан программистом в файле  с  расширением  .
def. Текст листинга 2 достаточно большой. Поэтому  для  обсуждения  разобьем
erо комментариями на характерные фрагменты, каждый из которых затем  поясним
необходимой степенью детализации.

                2. Каркасное Windows-приложение на ассемблере

<1> ;Пример каркасного приложения для Win32
<2>  .386
<3>   locals              ;разрешает применение локальных меток в  программе

<4>  .model flat, STDCALL       ;модель памяти flat Я
<5> ;STDCALL - передача параметров в стиле С (справа налево),
<6> ;  вызываемая процедура чистит за собой стек Ш
<7>  include  windowA.inc          ;включаемый  файл  с  описаниями  базовых
структур
                                                    ;и констант Win32 т
<8>  ;Объявление внешними используемых  в  данной  программе  функций  Win32
(ASCII):
<9>     extrn             GetModuleHandleA:PROC
<10>    extrn            GetVersionExA:PROC В
<11>    extrn             GetCommandLineA:PROC
<12>    extrn             GetEnvironmentStringsA:PROC
<13>    extrn             GetEnvironmentStringsA:PROC
<14>    extrn             GetStartupInfoA:PROC
<15>    extrn             LoadIconA:PROC
<16>    extrn             LoadCursorA:PROC
<17>    extrn             GetStockObject:PROC
<18>    extrn             RegisterClassExA:PROC
<19>    extrn             CreateWindowExA:PROC
<20>   extrn             ShowWindow:PROC
<21>    extrn             UpdateWindow:PROC
<22>    extrn             GetMessageA:PROC
<23>    extrn            TranslateMessage:PROC
<24>    extrn             DispatchMessageA:PROC
<25>    extrn             ExitProcess:PROC
<26>    extrn             PostQuitMessage:PROC
<27>    extrn             DefWindowProcA:PROC
<28>    extrn             PlaySoundA:PROC
<29>    extrn             ReleaseDC:PROC
<30>    extrn             TextOutA:PROC
<31>    extrn             GetDC:PROC
<32>    extrn             BeginPaint:PROC
<33>    extrn            EndPaint:PROC
<34>  ;объявление оконной функции объектом,  видимым  за  пределами  данного
кода
<35>  public WindowProc
<36>   .data
<37>    hwnd              dd           0
<38> hInst                  dd           0
<39> hdc                     dd           0
<40> ;lpVersionInformation OSVERSIONINFO   
<41> wcl       WNDCLASSEX    
<42> message   MSG    
<43> ps       PAINTSTRUCT   
<44> szClassName db     'Приложение Win32 ',0
<45> szTitleName db     'Каркасное приложение Win32 на ассемблере'.0
<46> MesWindow  db   'Это  процесс разработки приложения
 на ассемблере?'
<47> MesWindowLen=     $-MesWindow
<48> playFileCreate       db   'create.wav',0
<49> playFilePaint         db   'paint.wav',0
<50> playFileDestroy    db  'destroy.wav',0
<51> . code
<52> start     proc   near
<53> ;точка входа в программу:
<54> ;начало стартового кода
<55>  ;вызовы   расположенных   ниже   функций   можно   при   необходимости
раскомментировать,
<56> :но они не являются обязательными в данной программе
<57> ;вызов BOOL GetVe
1234
скачать работу


 Другие рефераты
Моделирование ЭВМ
Концепция цикличности цивилизаций в философии истории Арнольда Тойнби
Тәуелсіздік жемісі
Cаяси тәртіп


 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ