Введение

Введение

В этой книге описывается разработка приложений с использованием интерфейса прикладного программирования (Application Programming Interface, API) операционных систем Windows компании Microsoft, причем основное внимание уделяется базовым системным службам, включая управление файловой системой, процессами и потоками, межпроцессное взаимодействие, сетевое программирование и синхронизацию. Пользовательские интерфейсы, внутренние функции Windows и драйверы ввода/вывода в данной книге не рассматриваются, хотя сами по себе эти темы не менее важны и представляют не меньший интерес. Для примеров преимущественно выбирались реалистичные сценарии, и поэтому многие из них вполне могут служить в качестве основы для построения реальных приложений.

Win32/Win64 API, или обобщенно Windows API, поддерживаются семейством 32– и 64-разрядных операционных систем компании Microsoft, в которое в настоящее время входят Windows XP, Windows 2000 и Windows Server 2003. К числу ранних представителей этого семейства относятся операционные системы Windows NT, Windows Me, Windows 98 и Windows 95; в настоящее время эти системы считаются устаревшими, однако многие из приведенных в книге примеров программ способны выполняться и под их управлением. Вопросы перехода от платформы Win32 к развивающейся платформе Win64 обсуждаются по мере необходимости. Win64, поддерживаемый в качестве 64-разрядного интерфейса в некоторых версиях Windows Server 2003 и Windows XP, почти идентичен Win32.

Не вызывает сомнений, что Windows API является важнейшим фактором, который оказывает влияние на весь процесс разработки приложений, и во многих случаях вытесняет поддерживаемый операционными системами UNIX и Linux POSIX API, поскольку считается более предпочтительным или, по крайней мере, предоставляющим те же возможности для приложений, ориентированных на настольные и серверные системы. Поэтому многие опытные программисты заинтересованы в скорейшем изучении Windows API, и данная книга призвана содействовать этому.

Прежде всего, необходимо рассказать вам о том, что представляет собой Windows API, и показать, как им пользоваться в реальных ситуациях, причем этот рассказ должен быть как можно более кратким и не перегруженным излишними деталями. Поэтому данная книга предназначена не для использования в качестве справочного руководства, а для ознакомления с основными свойствами наиболее важных функций и демонстрации возможностей их применения в ситуациях практического программирования. Вооружившись этими знаниями, читатель сможет воспользоваться обширной справочной документацией, предоставляемой компанией Microsoft, для самостоятельного углубленного изучения отдельных вопросов, расширенных возможностей и менее приметных функций в соответствии с возникшими потребностями или заинтересованностью. Лично мне при таком подходе изучение Windows API далось легко, а разработка Windows-программ доставила огромное удовольствие, хотя и без неприятных минут также не обошлось. Мои порывы энтузиазма легко просматриваются в некоторых местах книги, что, собственно, и неудивительно. Впрочем, это вовсе не свидетельствует о том, что я безоговорочно соглашусь с превосходством Windows API над API других операционных систем (ОС), но относительно того, что у него есть масса положительных качеств, вряд ли кто-либо станет возражать.

Авторы многих книг, посвященных Windows, значительное внимание уделяют объяснению того, что представляют собой процессы, виртуальная память, межпроцессное взаимодействие, вытесняющий планировщик, но при этом не показывают, как все это используется в реальных ситуациях. Программистам, имеющим опыт работы с системами UNIX, Linux, IBM MVS, Open VMS и некоторыми другими ОС эти понятия уже знакомы, и они заинтересованы лишь в том, чтобы как можно быстрее перейти к изучению того, как эти возможности реализованы в Windows. К тому же, в большинстве книг по Windows важное место отводится методам программирования на основе пользовательского интерфейса. С целью концентрации внимания лишь на самых главных базовых возможностях, предоставляемых системой, в данной книге тема пользовательского интерфейса не затрагивается, и мы ограничиваемся обсуждением лишь простого консольного символьного ввода/вывода.

В соответствии с принятой в данной книге точке зрения Windows — это всего лишь API операционной системы, предоставляющий набор вполне понятных средств. Потребность в ускоренном изучении Windows испытывают многие программисты, независимо от уровня их опыта, и без знания Windows немыслимо обсуждение таких, например, тем, как модель компонентного объекта (Component Object Model, СОМ), разработанная компанией Microsoft. В некоторых отношениях системы Windows превосходят остальные системы, в других — отстают от них или находятся примерно на том же уровне. Задача данной книги состоит в том, чтобы продемонстрировать, как эффективнее всего использовать эти возможности в реальных ситуациях для разработки полезных, высококачественных и высокопроизводительных приложений.

Поделитесь на страничке

Следующая глава >

Рекоммендации

Похожие главы из других книг

Введение

Из книги 3ds Max 2008 для дизайна интерьеров автора Семак Рита

Формализованный шаблон освобождения ресурсов Текущая реализация MyResourceWrapper работает вполне приемлемо, но некоторые недостатки она все же имеет. Во-первых, каждому из методов Finalize() и Dispose() приходится очищать одни и те же неуправляемые ресурсы. Это, конечно, ведет к дублированию программного кода, что усложняет задачу его поддержки. Лучше всего определить приватную вспомогательную функцию, которая вызывалась бы каждым из двух этих методов.


10.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Глава 4 Размер имеет значение • Лучше меньше, да… меньше • Какой формат выбрать • Искусство оптимизации


11.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Filter Gallery (Галерея фильтров) Если вы уже попробовали в действии фильтры Photoshop, то должны были заметить, что окна с настройками одних сильно отличаются от других. Например, при выборе фильтра Twirl (Скручивание) из группы Distort (Деформация) появляется маленькое окошко (рис. 7.2), а при выборе фильтра Underpainting (Рисование поверху) из Artistic (Художественные) – большое окно (рис. 7.3). Все дело в том, что настройки некоторых фильтров отображаются в режиме галереи.


12.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Стальной шар Данный эффект, имитирующий объем, является, по мнению авторов, самым оригинальным. К большому сожалению, область его практического применения очень ограниченна, но результат выглядит интересно. Мы будем рисовать стальной шар. Создайте новое изображение размером 400 х 400 пикселов в любом цветовом режиме. Установите основные цвета по умолчанию (D) и примените фильтр Clouds (Облака): Filter ? Render ? Clouds (Фильтр ? Освещение ? Облака).


13.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Приложение 3 Фильтры Photoshop CS4 В главе 7 вы познакомились с группами фильтров Photoshop CS4 и с галереей фильтров, а также узнали подробнее о действии некоторых из них. Данное приложение служит небольшим дополнением к этой главе. Здесь кратко описаны все фильтры Photoshop. Пусть оно станет для вас небольшим справочником, с помощью которого вы сможете быстро понять, какой фильтр вам необходимо применять в каждом случае.


14.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Фильтры группы Render (Освещение) Clouds (Облака)


15.0. Введение

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Лекция № 2. Отсутствующие данные В системах управления базами данных для определения отсутствующих данных описаны два вида значений: пустые (или Empty-значения) и неопределенные (или Null-значения). В некоторой (преимущественно коммерческой) литературе на Null-значения иногда ссылаются как на пустые или нулевые значения, однако это неверно. Смысл пустого и неопределенного значения принципиально различается, поэтому необходимо внимательно следить за контекстом употребления того или иного термина.


Введение

Из книги Office 2007. Мультимедийный курс автора Мединов Олег

От издательства Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com.


Введение

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

2.2.9.1 Взаимодействие клиент-сервер


Введение

Из книги MySQL 5.0. Библиотека программиста автора Гольцман Виктор Иосифович

Обсуждение


Введение

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Постановка задачи Вы хотели бы добавить к сборному виду собственные механизмы распознавания жестов, таких как щипок, чтобы реализовать собственные варианты поведений на базе уже имеющихся.


Введение

Из книги Excel. Мультимедийный курс автора Мединов Олег

Глава 9. Глубина цвета Для определения числа цветовых оттенков, которые способен различить сканер, часто используют два взаимосвязанных параметра — глубину цвета и собственно количество цветов.


Введение

Из книги Эффективное использование STL автора Мейерс Скотт

2.3.2. Совместно используемые библиотеки


Введение

Из книги MySQL: руководство профессионала автора Паутов Алексей В

6.5.1. /dev/null Устройство /dev/null служит двум целям. ? Linux удаляет любые данные, направляемые в устройство /dev/null. В тех случаях, когда выводные данные программы не нужны, в качестве выходного файла назначают устройство /dev/null, например: % verbose_command > /dev/null


Введение

Из книги Эффективное делопроизводство автора Пташинский Владимир Сергеевич

Резюме


Введение

Из книги Photoshop CS4 автора Жвалевский Андрей Валентинович

Явные преобразования типов Явное преобразование типа может быть выполнено посредством операции приведения типа. Она имеет следующую синтаксическую форму (<абстрактное-имя-типа>) <операнд> <абстрактное-имя-типа> — специфицирует некоторый тип; <операнд> — выражение, значение которого должно быть преобразовано к специфицированному типу (абстрактные имена типов рассмотрены в разделе 3.8.3).