The book aims to provide a 'comprehensive guide to programming' using Visual C++. However, it fails because of a lack of understanding of its target audience. Although directed at advanced developers, the book offers too much that the audience would be familiar with. Far too much text is devoted to basic aspects such as the software development lifecycle, coding standards, entry level SQL, database design and debugging.
The technical content is variable in quality. Like many authors whose development tradition harks back to C, there is the liberal use of #define instead of const for constant declarations and dynamic memory allocation revolves around malloc() and free(). The C++ language discussion is lacking, as the book makes no mention of essential elements such references, reference parameters and copy constructors. The text improves when discussing specific Visual C++ topics such as user interface design and data access, with clear descriptions on the manipulation of dialogues and menus. However, the narrative is occasionally verbose and McMahon's penchant for including lengthy source code listings that do not add much to the discussion does not help. Discussions on advanced topics such as DLL and ActiveX controls are well written yet are constrained by failings earlier in the book.
In the end, the book is far too ambitious. In attempting to cover too much, the book fails in its goal as 'comprehensive guide to programming' using Visual C++.