Рецензии
Если на клетке слона прочтешь надпись “буйвол”, не верь глазам своим.
Козьма Прутков
Алексей Роговцев
Клейтон Велнум. Секреты программирования в Windows 98. Пер. с англ. М., Диалектика, 1999. - 855 с.
Начну с цитаты из аннотации: “Книга "Секреты программирования в Windows 98" никого не оставит равнодушным”. И в этом авторы русского перевода абсолютно правы - после прочтения первых глав я разозлился, поняв, что меня здорово обманули. Помните, как бывало в детстве: берешь из вазочки конфету в ярком фантике, разворачиваешь, а там - ничего, пусто... К сожалению, так и с этой книгой: под яркой обложкой - никаких секретов.
Книга состоит из 5 частей, 27 глав. В каждой главе можно найти примеры создания приложений, иллюстрирующие рассматриваемый материал. Первая часть книги является вводной и в первых двух ее главах читатель найдет краткие сведения о возможностях Windows 98 и пакета Microsoft Visual C++ 5.0. В следующей главе рассмотрены основные приемы создания приложения с помощью Visual C++ 5.0: в ней показано, как создать проект простого приложения, использующего MFC, и внести в него необходимые изменения с помощью ClassWizard и редакторов ресурсов. Заканчивается первая часть обзором различных типов Windows-приложений.
Вторая часть книги содержит девять глав, посвященных программированию элементов пользовательского интерфейса. В этой части приведены общие сведения об интерфейсе графических устройств (GDI) и основных его элементах: контексте устройства, перьях, кистях и т. д.
Вопросы взаимодействия с операционной системой рассмотрены в третьей части книги. В ней приведены примеры того, как приложение может управлять памятью, как создаются и синхронизируются потоки, рассказано об обработке сообщений от клавиатуры и мыши, работе с файлами и буфером обмена.
В четвертой части книги описано создание ActiveX-компонентов и использующих их приложений - контейнера и сервера, а также приложений автоматизации и управляющих ActiveX-элементов.
И наконец, последняя, пятая часть книги, посвящена работе с мультимедиа с помощью DirectX 5.0. В каждой главе этой части рассмотрена одна из составляющих этого комплекта API: DirectDraw, DirectSound, DirectInput и Direct3D.
А где же секреты программирования в Windows 98? Их нет, ведь нельзя же считать раскрытием секретов программирования рассказ о возможностях Windows 98 в одной главе и упоминание, и только упоминание, Windows 98 в других. Вся книга посвящена тому же, чему и многие другие книги по программированию на Visual C++ различных версий - вопросам разработки Windows-приложений. В книге нет ничего, что помогло бы разработчику в создании приложения, использующего новые возможности, появившиеся в Windows 98.
Я имею в виду хотя бы те новые стили управляющих элементов общего назначения (common controls), которые стали доступны с появлением Internet Explorer 4.0 (например, плоские кнопки панели инструментов и плоские полосы прокрутки), а также новые элементы пользовательского интерфейса (например, docking window), не говоря о том, что Visual C++5.0 их просто не поддерживает.
В книге встречается много ошибок и неточностей: не всегда подписи к рисункам совпадают с тем, что на них изображено, иногда одна и та же ситуация в разных местах объясняется по-разному, например рис. 3.5 и пояснение к нему на с. 54 и рис. 11.5 и пояснение на с. 384.
И последнее замечание. Уже стало привычным, что к книгам по программированию прилагается компакт-диск с примерами и текстами рассматриваемых программ. На этот раз издатели решили пойти своим путем - они предлагают обращаться за примерами по адресу: ftp:// ftp.dialektika.com/books/SecretsProgWin98/. И все бы хорошо, но как быть читателям, не имеющим доступа в Интернет? Я уж не говорю о том, что по указанному адресу просто нельзя ничего найти - FTP-сервер недоступен, и всем предлагается обращаться на Web-сервер издательства, который, кстати говоря, предназначен только для работы с IE4.0.
Итак, если не принимать во внимание многообещающее название и перечисленные недостатки, книгу можно рекомендовать начинающему программисту, но специалистам я посоветовал бы поискать что-нибудь другое.