[Home Page] - [Reviews Main] | |
|
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) |
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!
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.