Введение в программирование под Windows

В предыдущих главах мы изучали возможности языка С# на примере консольных приложений, чтобы не распылять свое внимание на изучение классов библиотеки.NET, поддерживающих стандартный графический интерфейс пользователя. Сей­час пришло время освоить принципы создания Windows-приложений и получить представление об основных классах библиотеки, которые при этом используются. В первую очередь рассмотрим основные особенности Windows как характерного и широко распространенного представителя современных операционных систем.

Многозадачность — это возможность одновременно выполнять несколько при­
ложений. Операционная система обеспечивает разделение ресурсов: каждому
приложению выделяется свое адресное пространство, распределяется процес­
сорное время и организуются очереди для доступа к внешним устройствам.
Внутри приложения также можно организовать параллельное выполнение
нескольких фрагментов, называемых потоками. В разных версиях Windows
используются различные механизмы диспетчеризации.

Независимость программ от аппаратуры. Для управления аппаратными сред­
ствами любое приложение обращается к операционной системе, что обеспе­
чивает независимость от конкретных физических характеристик устройств:
при смене устройства никакие изменения в программу вносить не требуется.
Управление внешними устройствами обеспечивается с помощью драйверов.

Стандартный графический интерфейс с пользователем. Основное взаимо­действие с пользователем осуществляется в графическом режиме. Каждое приложение выполняет вывод в отведенную ему прямоугольную область экра­на, называемую окном. Окно состоит из стандартных элементов. Это упроща­ет освоение программ пользователем и облегчает работу программиста, по­скольку в его распоряжение предоставляются библиотеки интерфейсных компонентов. Такие библиотеки входят в состав систем программирования.

Интерфейсные компоненты обращаются к аппаратуре не непосредственно, а через функции операционной системы, называемые API (Application Program Interface — программный интерфейс приложения). API-функции находятся в динамических библиотеках (Dynamic Link Library, DLL), разделяемых всеми приложениями. Эти библиотеки называются динамическими потому, что на­ходящиеся в них функции не подключаются к каждому исполняемому файлу до выполнения программы, а вызываются в момент обращения к ним.

В основе пользовательского интерфейса Windows лежит представление экра­на как рабочего стола, на котором располагаются «листы бумаги» — окна приложений, ярлыки и меню. Одни элементы могут полностью или частично перекрывать другие, пользователь может изменять их размеры и перемещать их. Приложение может иметь несколько окон, одно из них является главным. При закрытии главного окна приложение завершается.

Поддержка виртуального адресного пространства для каждого приложения.
Каждому приложению доступно пространство адресов оперативной памяти
размером до 4 Гбайт (имеются в виду 32-разрядныеприложения, то есть приложения, в которых использует­ся адрес длиной 32 разряда). Операционная система отображает его на физические
адреса и обеспечивает защиту приложений друг от друга. В разных версиях
Windows защита выполняется с различной степенью надежности, например,
системы Windows 95/98 гораздо менее надежны, чем Windows NT/2000.

Возможность обмена данными между приложениями. Приложения могут об­
мениваться данными через буфер обмена или используя другие механизмы,
например OLE (Object Linking and Embedding — связывание и внедрение
объектов) или именованные программные каналы.

Возможность запуска старых программ. В 32-разрядных версиях Windows
можно выполнять 16-разрядные Windows-программы, а также программы, на­
писанные под MS-DOS. Последние запускаются в так называемой виртуаль­
ной DOS-машине, которая создает у программы полное «впечатление» того,
что она выполняется под управлением MS-DOS в монопольном режиме.

Принцип событийного управления (рассматривается в следующем разделе).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: