О
чем этот диск
Видимо, диск
можно было бы продолжить в том же духе и стиле, который был принят в предыдущем
параграфе, но, к сожалению, время для этого еще не пришло. Во-первых, новые
технологии требуют осмысления, во-вторых, бета-версия Studio.Net работает недостаточно
надежно, в-третьих, документация по новым технологиям ограничена и доступна,
пожалуй, только на сайте Microsoft. Поэтому мы постараемся осветить только ту
часть возможностей, предоставляемых новой версией Studio.Net, которая относится
к разработке настольных (desktop) приложений с использованием Visual C++ 7.0.
Указанную область нельзя назвать узкой, так как она объединяет достаточно большое
количество типов разрабатываемых приложений:
- приложения на основе
MFC (Microsoft Foundation Classes);
- DLL СОМ-серверы на основе
ATL;
- приложения с использованием
библиотеки OpenGL;
- приложения, использующие
динамические структуры данных и алгоритмы STL.
Вы узнаете,
как управлять координатными пространствами Windows, как осуществлять взаимодействие
нескольких представлений одного документа, как добиваться эффективности и реалистичности
изображений OpenGL, как использовать
Shell API для
управления файловым деревом, как разрабатывать СОМ-серверы и СОМ-контейнеры,
как синхронизировать множество элементов управления в рамках диалога, как создавать
свои собственные нестандартные окна, как использовать контейнеры и алгоритмы
стандартной библиотеки C++ (STL), как строить графики функций в трехмерном пространстве
и, наконец, как решать простейшие краевые задачи с демонстрацией результатов
в виде аккуратных графиков. Кроме того, в последней главе вы найдете информацию
об архитектуре Windows, с точки зрения разработчика программного обеспечения.
При изложении
материала я не стараюсь подробно рассматривать все технические детали использования
какого-либо класса, функции или типа данных, так как, на мой взгляд, нецелесообразно
ставить себе задачу запоминать детали. Во-первых, их очень много даже в рамках
одной технологии, во-вторых, MSDN (Microsoft Developer Network) для того и существует,
чтобы при необходимости быстро прийти на помощь, в-третьих, я верю в принцип:
чем чаще используете, тем вероятней, что запомните. Вместо этого ставится задача
показать, какие преимущества вы получаете, используя новую сущность или новый
технологический прием, а главное, как их использовать.
Иногда, я все-таки
пускаюсь в пространные описания очень мелких и, казалось бы, непринципиальных
деталей, но это делается обычно только после того, как сам потратил в логической
ловушке много времени и нервов, ища из нее выход. Жизнь программиста полна ловушек,
которые обычно он сам себе и расставляет, что-то недоговаривая, оставляя на
потом или просто проявляя лень. Здесь вспоминается поговорка, которую любил
повторять на лекциях по математике профессор И. С. Серебрянский в Санкт-Петербургском
Политехническом институте: «Математики — это умные лентяи». Думаю, что многие
программисты тоже болеют этим недугом, что позволяет им создавать эффективные,
краткие, изящные алгоритмы и программы.
Язык C++ служит
благодатной почвой для произрастания нестандартных, сложных, порой замысловатых,
логических конструкций и неожиданных решений. Новые технологии разработки приложений,
а также категории API-функций, довольно проворно разрабатываемые компанией Microsoft,
дают пищу фантазии программиста и делают его жизнь еще более беспокойной, разнообразной
и от этого более интересной.