Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Book Review
Windows++; Writing Reusable Windows Code in C++ by Paul Dilascia
Highly Recommended
ISBN: 0-201-60891-X       Publisher: Addison-Wesley       Pages: 570pp       Price: £24-95
Categories:   MS Windows     object oriented    
Reviewed by John Washington in C Vu 5-4 (May 1993)
This was a book that attracted me from the start. The five page preface should give you a good idea of whether this is a book for you. Unlike book jacket hype artists, the author not only outlines very fairly who the book is aimed at, there is even a section that starts with the words "Windows++ is not for everyone". What refreshing honesty!

Windows++ is both the book title and the author's library for Microsoft Windows programming. Though written in C++, for use in C++ programs, you don't need to be proficient in C++ to benefit. The second chapter gives enough of the C++ basics for the competent C programmer to cope, an excellent introduction in just 30 pages. The rest of the book is equally accessible, given time and determination, whether you're a C++ expert or a beginner.

In contrast, the reader must be familiar with Windows programming, at least to some extent. Rightly the author doesn't attempt to cover Windows ground already dealt with by so many other good books, such as Petzold's.

The Windows API (hundreds of functions calls, not always consistently organised) is more complicated than it needs to be, and has promoted the "copy and paste" school of programming. Windows++ shows there really is a better way. The author is a master of clear elegant design and evidently one of his goals is to communicate to the reader a feeling for such design. Instead of a library manual, this is the story of building a library from scratch. You watch the author at work, seeing the changes and extensions that have to be made to his early code as later requirements are introduced.

Chapter 3 takes the traditional Hello program for Windows and tears it apart to create reusable code. The library is just beginning, and C++'s virtual functions are helping to make it more readable.

Later chapters cover memory management, menus (and other resources), dialogs, graphics, and DLLs. The topics are always put in context by building an example program at the same time as developing the library. Many other topics get touched on while these broad issues are dealt with. The gentle pace and thorough treatment of the earlier chapters gradually gives way to a meatier style.

A C++ Windows library invites comparison with Borland's OWL (Object Windows Library) or Microsoft's MFC (Microsoft Foundation Classes). Windows++ is smaller than either. On the one hand, powerful features like object persistence (in essence, saving objects on disk) are not included. There's nothing to handle DDE conversations. Open any other Windows book, and you'll probably find a topic that Windows++ doesn't cover. On the other hand, there's a lot to be said for a "lean and mean" library, with code that's understandable and elegant. The author is not just giving a tin of sardines, he's teaching how to fish -- read this book and you should be able to write your own well-designed extensions to Windows++ to cover the topics you want.

The book has a short but excellent bibliography. Another aspect of the author's refreshing honesty is that he doesn't pretend to be all-knowing all- inventing and is glad to share his sources with you when he's picked up something really neat. Credit to the Microsoft Systems Journal comes up often enough that I really must find a library where I can browse its back numbers.

The index could be better. It seems quite full, yet it usually failed to yield what I was after. The source code itself is not indexed at all -- a ploy to encourage you to buy the disk? The disk is $30 extra, available from the author.

The code has been developed mainly using the Borland compiler, and also tested under Zortech, but there is little that would be expected to be compiler dependant. Although printed in June 92, Microsoft C++ 7 gets no mention at all.

Conclusion: for any Window's programmer this could be a real eye-opener. Buy it!


Last Update - 13 May 2001.

To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/w/w001406.htm

Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.

Mirrored from http://www.accu.org/