<<
>>

Углубленное программирование на ассемблере для Win32

Реализация описанного ранее процесса разработки простого Windows-приложе- ния на языке ассемблера может отнять довольно много сил и времени у неподго- товленного человека. Но, скорее всего, это не будет пустой тратой драгоценных для любого программиста жизненных сил.
Цель материала, изложенного именно в таком виде, — демонстрация того, что разработка Windows-приложения на языке ассемблера — не такое уж нереальное дело. Напротив, у него даже есть свои досто- инства. Нужно отметить, что объем учебного материала, необходимого для описа- ния процесса разработки каркасного приложения для Windows, не зависит от язы- ка, на котором предполагается вести программирование, так как основное внимание уделяется не столько средствам языка, сколько описанию требований к функцио- нированию приложения со стороны Windows. Каркасное приложение является простейшей программой для Windows, которая в лучшем случае выводит строку текста в окно приложения. С точки зрения сложности, не имеет смысла даже про- водить ее сравнение с аналогичной программой для MS-DOS, выводящей строку на экран. Логику работы и способы реализации такой программы для MS-DOS в худшем случае можно объяснить минут за десять. Для объяснения логики рабо- ты каркасного Windows-приложения неподготовленному слушателю придётся про- читать целую лекцию, может быть, и не одну. И это простейшая программа. А где же предел? Какими минимальными знаниями и умениями должен обладать про- граммист, чтобы утверждать, что он является, если, конечно, можно так выразить- ся, профессиональным Windows-программистом. Не претендуя на безусловную истину, попытаемся перечислить некоторые проблемы, которые программист дол- жен научиться решать в первую очередь. m Нужно понять общие принципы построения программы, работа которой управ- ляется сообщениями. II Нужно научиться выводить текст и графику в область окна приложения. Ос- новная проблема здесь состоит в умении эффективно использовать совокуп- ность средств Win32 API.
Сам процесс формирования изображения в окне Windows напоминает процесс формирования изображения в видеобуфере, как это делалось в MS-DOS. Оба эти варианта вывода изображения можно срав- нить с рисованием цветными мелками на школьной доске. Для того чтобы об- новить содержимое окна, его необходимо либо полностью вывести заново, либо сначала удалить ненужные фрагменты, сформировать на их месте новые и за- тем вывести в определенное место в окне. Эта проблема называется проблемой перерисовки изображения, и она тесно связана с тем, насколько эффективно ре- шается следующая проблема. Ш Нужно организовать адекватную обработку сообщений. Эффективность и пра- вильность работы программы напрямую зависит от того, насколько правильно в ней организована обработка сообщений. В самом начале процесса обучения написанию программ для Windows вы столкнетесь с необходимостью обработ- ки такого сообщения, как WM_PAINT. Проблема здесь заключается в том, что Windows не сохраняет содержимое окна или части окна при его свертывании или скрытии под другим окном. Следить за содержимым своих окон должно само приложение, а точнее, соответствующая оконная функция. Более подроб- но о решении этой проблемы мы узнаем при рассмотрении вопроса перерисов- ки изображения. * Нужно научиться создавать интерфейсную часть приложения. Интерфейс при- ложения — это его визитная карточка. Первым, на что обращает внимание пользователь, тем более если он непрофессионал, является именно этот эле- мент работы приложения. Более того, движущей силой развития самой систе- мы Windows является стремление к реализации идеи идеального интерфейса. На сегодняшний день эту роль играет оконный интерфейс. Что будет завтра, пока не ясно, так как оконный интерфейс действительно решает многие про- блемы и до исчерпания его потребительского ресурса, наверное, еще далеко. Основа оконного интерфейса — окно, в котором имеются две области: управ- ляющая, с ее помощью осуществляется управление работой окна, и пользо- вательская, которая обычно занимает большую часть окна, и именно в ней пользователь формирует некоторое изображение.
Управляющая область окна приложения состоит из более элементарных интерфейсных компонентов: меню, окон диалога, кнопок, панелей и т. д. Создание и организация работы со многими из этих компонентов поддерживается Windows с помощью функций Win32 API. Нужно научиться обрабатывать пользовательский ввод. Каждый пункт этого списка представляет лишь вершину некоторой иерархии более частных проблем и может быть довольно глубоко детализирован вглубь. Ко- нечно, в рамках нашего изложения сделать это не представляется возможным, да и вряд ли нужно. Подобные вопросы хорошо изложены в литературе. Материал данной главы подобран так, чтобы показать, как отражается на процессе разработ- ки Windows-приложения выбор ассемблера в качестве основного языка програм- мирования. Поэтому основное внимание мы уделяем не тому, как реализовать те или иные элементы пользовательского интерфейса, а технологии сборки работо- способного приложения с помощью пакета TASM (для МАSМ отличие только в инструментарии). Исходя из этого далее покажем, как использовать ресурсы в Windows-приложениях, написанных на ассемблере.
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Углубленное программирование на ассемблере для Win32:

  1. Сергей Александрович Орлов. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения, 2013
  2. 5 Лучшим временем для программирования является последний час перед сном.
  3. Углубление точки
  4. Основной курс (Программирование)
  5. Иванова Г.С. Основы программирования, 2002
  6. Эстетика программирования
  7. Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев. Объектно- ориентированное программирование, 2001
  8. О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ, 2008
  9. Часть вторая Родительское программирование
  10. Программирование телевизионного вещания