Jenter Алекс
Шрифт:
• Контроллер прерываний – обработчику прерываний: Тут юзер Ctrl-Alt-Del жмет!
• Главная программа – обработчику прерываний: Да отруби ты этому зануде клавиатуpу! Мы тут делом заняты…
• Хакерская функция – главной программе: Опаньки!
• Главная программа – операционной системе: Ну что там? Сколько памяти свободно?
• Операционная система – главной программе: 320 Conventional и… ой, куда это Extended Memory Manager делся?
• Главная программа – хакерской функции: Ты что начистила, сволочь?
• Хакерская функция – главной программе: А чо я, чо я? Мне сказали – выкинуть, я и выкидываю!
• Функция malloc – операционной системе: Прошу выделить 257 килобайт Conventional Memory в связи с производственной необходимостью.
• Операционная система – главной программе: Не могу. У меня в Extended Memory важные данные лежали. И вообще, я с вами скоро повешусь!
• Кнопка Reset – процессору: Ну что? Доигрались?
… ХОЛОДHЫЙ РЕСТАРТ…
• Autoexec.bat – главной программе: Так на чем мы остановились?
Это все на сегодня. Пока!
Алекс Jenter jenter@rsdn.ru Duisburg, 2001. Публикуемые в рассылке материалы принадлежат сайту RSDN.Программирование на Visual C++
Выпуск №57 от 23 декабря 2001 г.
Здравствуйте, дорогие подписчики!
Опять я к сожалению заставил вас недоумевать, почему не выходит рассылка. Дело в том, что мне по личным причинам пришлось срочно поехать в другой город и пробыть там две недели. Выпускать рассылку оттуда в это время не было никакой возможности. Само собой разумеется, что теперь рассылка будет выходить вовремя. Я искренне прошу прощения и надеюсь на ваше понимание. Ну а теперь – к делу! Ведь за это время на сайте RSDN появилось много интересного…
СТАТЬЯ
GDI+
Часть 1. Краткое знакомство
Автор: Виталий Брусенцев
Демонстрационное приложение на C++ (требует наличия GDI+) – 88 Кб.
Демонстрационное приложение на C# (требует CLR) – 62 Кб.
За последний год компания Microsoft подготовила разработчикам множество сюрпризов. Новые продукты и технологии буквально завладели вниманием околокомпьютерного мира. Пока неясно, насколько успешным будет дебют технологии .NET и основанных на ней программных продуктов и средств разработки. Но одно из новшеств, безусловно, уже завоевало признание разработчиков, связанных с графикой и мультимедиа, – технология GDI+. Именно она, вернее, основанный на ней новый графический интерфейс является "лицом" новых операционных систем – Windows XP и .NET Server.
Что же такое GDI+? Официальная документация скромно называет ее Class-based API, то есть основанным на классах интерфейсе прикладных программ. Так как она встроена в Windows XP и .NET Server, ее называют частью этих операционных систем. Часто встречается также определение "библиотека" или "библиотека классов". В действительности, предоставляемый GDI+ набор классов является тонкой оболочкой над множеством обычных функций, реализованных в одной динамической библиотеке GdiPlus.dll. В общем, имея все это в виду, будем для краткости далее называть ее просто библиотекой.
Итак, GDI+ – это библиотека, призванная заменить существующий уже больше 11 (или 18 – как считать) лет интерфейс GDI, являющийся графическим ядром предыдущих версий Windows. Она сочетает в себе (по крайней мере, по замыслу) все достоинства своего предшественника и предоставляет множество новых мощных возможностей. Кроме того, при ее проектировании заранее ставилась цель наименее болезненного переноса приложений на 64-битные платформы. Следовательно, хотя существующие GDI-приложения будут выполняться на новых версиях Windows, для новых проектов следует использовать GDI+.
Далее мы еще будем рассматривать специфические (и такие эффектные!) возможности GDI+. Здесь же только опишем основные новшества.
Достоинства C++ – реализации:
• Объектно-ориентированный интерфейс: благодаря поддержке компилятора C++ мы "бесплатно" получаем контроль над типами и временем жизни объектов.
• Прозрачное управление памятью: объекты ядра GDI+ создаются в куче с помощью собственного менеджера памяти прозрачно для программиста.
• Использование перегрузки имен функций: функции одного назначения различаются только по своим параметрам.
• Собственное пространство имен: позволяет использовать понятные имена типов – такие, как Rect, Pen и Matrix – без конфликтов с другими библиотеками.
• Перегрузка операторов: предоставляет удобные операции '+' и '-' для таких типов, как Point и Size.
Архитектурные новинки библиотеки:
• Аппаратная абстракция: как уже было замечено, упрощается перенос на 64-битные платформы.