Любое оконное Windows-приложение имеет типовую структуру, основу которой составляет так называемое каркасное приложение, содержащее минимально необ- ходимый для функционирования полноценного Windows-приложения программ- ный код. Не случайно во всех источниках в качестве первого Windows-приложения рекомендуется изучать и исследовать работу некоторого каркасного приложения, так как именно оно отражает основные особенности взаимодействия программы с операционной системой Windows. Более того, написанное и однажды отлажен- ное каркасное Windows-приложение используется и в дальнейшем в качестве ос- новы для написания любого другого значительно более сложного приложения. Изложение материала будем иллюстрировать программами на двух языках — C/C++ и ассемблере. Такой подход значительно облегчает понимание технологии написания Windows-приложений на ассемблере. На его основе можно даже выра- ботать некую методику, которая позволит конвертировать многие полезные про- граммы на C/C++ в функционально эквивалентные программы на ассемблере. Перед началом изложения отметим некоторые его характерные черты. ш Теоретический и практический материал главы будет отражать особенности разработки программ для 32-разрядных операционных систем Windows, к ко- торым относятся Windows 95/98 и Windows NT/2000/XP. Хотя архитектуры этих систем в большей или меньшей степени различаются, их объединяет 32-раз- рядный программный интерфейс — Win32 API. Он представляет собой набор функций, к которым может обращаться приложение. Основная идея Win32 API — обеспечение переносимости программ между различными программно- аппаратными платформами. И Несмотря на то что изложение будет вестись довольно подробно, мы не смо- жем описать все детали процесса построения Windows-приложения. Но в этом нет ничего страшного, так как в настоящее время доступно довольно много ис- точников, где это сделано с необходимой степенью детализации. Неподготов- ленному читателю можно посоветовать подобрать другой источник, где началь- ный уровень программирования для Windows изложен с соответствующей степенью детализации. При этом ему совсем не нужно влезать в дебри. Вполне достаточно достичь уровня понимания логики работы каркасного Windows- приложения, и можно снова браться за данный учебник. * Для изучения материала этой главы и его практического использования в даль- нейшей работе мало иметь только один пакет TASM. Кроме него также необхо- димы пакеты инструментальных средств разработки приложений на языке C/C++, например от Microsoft или Borland. В том и другом пакетах имеются все необходимые средства для разработки Windows-приложений. Пакет TASM, в отличие от этих пакетов, не обладает такими средствами, поэтому програм- мисту приходится заимствовать их в том или ином виде в пакетах C/C++.