on 30 August 1999
If you read the remaining reviews of this book, you will probably be surprised and confused by the extreme opinions expressed. To help you decide whether this book is worth your time and money, I offer these observations:
C++ is a very complex programming language written BY advanced programmers FOR advanced programmers. NO AUTHOR CAN MAKE C++ PROGRAMMING EASY. However, it is my opinion that Mr. Horton does an excellent job presenting a well-rounded overview of Visual C++ programming in this book.
Be warned. This book is NOT for you if:
-You have never programmed before
-You have written a few Visual Basic programs that have a couple dozen lines of code in them
-You expect this book to tell you everything that there is to know about Visual C++, MFC, ATL, Windows, COM, DLLs, memory management, enterprise development, etc., etc. (No single book can do all these things.)
However, this book may be a good choice for you if:
-You have written some fairly advanced programs in languages like Visual Basic, and love the challenge of programming
-You have the patience to read a 1200 page book slowly and carefully, and are willing to write sample programs to reinforce your learning
-You need a systematic, thoughtful overview of Visual C++ so you can start down the very long path to proficiency
I use this book when teaching my college-level C++ programming classes, and my students do struggle. But they struggle with the complexities of C++ and MFC, not with the book. I find no fault in the book itself. Please try to distinguish those reviewers who criticize the language from those who criticize the book.
I hope you find my comments useful.
on 17 June 2001
Ivor Hortons book is great, and would have been the best, but for a few problems. Firstly, please remember...:
Visual C++ is DIFFICULT. Learning the basics of C++ is DIFFICULT. The MFC is VERY DIFFICULT, even Microsoft admit this. Thats why there are API alternatives to the MFC. It is not Visual Basic, and you cannot expect to understand everything on first go. If you wish to learn & become proficient in VC++, it is your task to HELP YOURSELF...The book clearly explains what all that code was about, and if thats not good enough, why not try MSDN for help? Not good enough? Check Google.
The problem is, you must be willing to push yourself to find the answers as they don't always jump out of the page at you. And that seems to be a hurdle a lot...are unwilling to overcome.
There are, however, some bad points. As a BASIC/Visual Basic/68000 ASM & other language programmer myself, I know that rule #1 is "make your code as simple as possible".
Unfortunately, this is a golden rule that Ivor Horton breaks a fair few times. Some of his code is extremely convoluted, far more complex than it needs to be.
I was also sad to spot a fair few errors in the example code, especially as the Sketcher application became more complex. However, I managed to fix these errors myself with the skills that the book had already taught me. I can understand how this would be frustrating for the first-time programmer, and this book is certainly not the one for you if you've never programmed in any language before. Programming requires a certain thought-process, and it's better to learn that process in BASIC than in C++.
All in all, the book is very good, except for those few points I've outlined. And with regard to all the errors and code corrections, I have only one thing to say - Get this book, go through it. Follow the examples, and when you find something doesn't work, TRY TO FIX IT YOURSELF FIRST. I guarantee with a little perseverance you will succeed, and that little effort will teach you far more about the workings of VC++ than following any amount of examples. There is a big difference between reading & copying code from a book, to actually understanding what you are doing to a proficient level. In fact, Wrox should have marketed these code errors as a feature, to help you learn more thoroughly.
...do not blame the complexities of the language on the book itself. This book gets 4stars instead of 5 because of the unnecessary complexity of some of the examples, not for ANY other reason.
on 10 July 2002
I find the problem with this book is that covers too many topics and makes out that it will take a beginner and teach them what they need to know. The problem is that this book starts by teaching C++ (using VC compiler - not a good start) before tapping in to Win32 API, before showing you how to do various things using MFC.
The problem is that it is not really explaining the ideas behind the MFC well, nor is it demonstrating how to implement the various visual control elements very well. You will find that you will eventually get there and to some degree feel that you can do various things using Visual C++, but you will also feel overwhelming gaps in your knowledge.
For me the best approach is:
Learn C++ (Deitel & Deitel or Eckel (or similar)
Learn Visual C++ (MS Press Learning Edition)
Programming with Visual C++ (Fifth Edition - MS Press)
Mastering MFC (MS Press)
This may seem like a lot of money but I assure you, you will get a much more grounded knowledge of the concepts you need than can ever be achieved in a single book (no matter how big that book is).
I have given it three stars because this book still contains some really nice examples and some good information but regretably I don't really think it does what it suggests.
on 9 April 1999
The mark of a good (technical) book is that its content is consistent with its title and with itself, by which I mean that its style and depth of treatment should be the same throughout. For this reason, while I have gained useful knowledge from it, I would not recommend Beginning Visual C++ 6 as a sole text in learning to program Windows.
The first half is largely devoted to pure C++ as it applies to Windows (essential reading if you're not already familiar with this subject) and is covered in good depth. The second half begins with a brief description of programming Windows in its native C and goes on to demonstrate a similar program written in MFC (which can be thought of as C+++), without wizard help, to highlight the simplification that this affords. So far so good but MFC hides a lot of the underlying code and although based on, is significantly different to pure C++ and should be treated like a language in its own right. MFC does not seamlessly follow on from pure C++ and needs detailed explanation.
This is where the book goes wrong because at this point, instead of developing the explanation of MFC in the same way it covered C++, it starts using the wizards to produce (relatively) complicated applications contained in multiple files. In common with many other authors, including those who produce Microsoft's own documentation, Ivor Horton mistakenly assumes that wizards make learning easier. In fact wizards are productivity tools that only become useful when you understand what they are doing and are no more helpful than going faster helps you to learn to drive.
It seemed like a good idea when I bought the book but in developing a full application, as Horton does in much of the second half, a lot of space is wasted on repetition and the explanation of programming detail which is not Windows specific. Given that it would not be practicable to make the book any longer, more space should have been devoted to MFC by giving only sample functionality to his application, leaving the reader better equipped to add the remainder as an exercise.
The failings of this book can be summarised by two points. The first is that while it is relatively easy to understand the book's explanations of the wizard generated code, you find it is considerably less easy to write your own program with the book closed, even with the wizards. Secondly, if you make a mistake using the wizards you will not be sufficiently knowledgeable to debug the program and your only option will be to start again.
As a final thought, bear in mind that most of what is good about this book is given away with the Standard Edition of VC++ 6 in the form of an online pure C++ tutorial, using the same text and diagrams, and a 250 page book that is a condensed version of the second half.
on 25 March 2001
This book is great!! Good for intermediate users at least. People new to C++ shouldn't get this book. I have found that when an author includes two large subjects (like this one: C++ and MFC), one of the subjects tend to lack explanation and depth. For this book, the part that introduces C++ is very lacking. Another book that I have, Essential Visual C++ 4, is okay, except it attempts to explain C++ in only 80 pages, and MFC in 300.
The examples in the MFC portion of the book are great. There aren't many of them, and one example is used over several chapters. This means that it's good for people who want to get into the logical and overall understanding of MFC, but not too much for people who want to get into depth. This isn't much of a problem, however, because you can always look up the help in VC6.
If you're new to C++, buy Jesse Liberty's Teach yourself C++ in 24 hours. This is UNDOUBTEDLY the best book for people starting C++. If you want to continue on to Windows programming, get this book.
on 23 April 2001
Many critisisms against Ivor Horton's works centre around the repetitive nature of his examples. By starting with a program and slowly developing it you become familiar with it and can focus on the new subject as it is introduced. If you are looking for a teach yourself in 24 hours/21 days then this is not for you. It is very thorough and you need to treat it as a formal training text. Buy a notebook and several pens and make notes as you work through the book. Having worked through the book once, I went back and did it again, but this time making comprehensive notes on each chapter as if I was studying the C++ language for and examination. In doing so I found that I had skipped a number of very important points. Ivor does go into some depth and it is very easy to miss bits. Although this is a C++ book in entirety I have found that many of the contents have made me a better VB programmer.
on 6 December 1998
I found this book to be a very poor introduction to the area of both C++ and the MFC. Horton manages to hold it together for a brief instance with a less than mediocre introduction to C++, but things really get ugly in the MFC sections. Horton habitually chooses the most complicated and inelegant approach to virtually every problem. It seems his knowledge of structured programming technique is limited. His source code contains an insufficient quantity of commenting, and what is commented is poorly articulated. His coding style seems to scream a lack of cohesion between various program elements. It is quite obvious that the majority of the programs in the book were designed in one pass sitting at the keyboard. Horton relies heavily on ancient language components which have long been replaced by more modern, and gracefull commands and syntax. The first section is so widely contaminated by Horton's use of the C language, that it leaves very little in the way of a proper C++ flavour. The coverage of C++ file IO is pretty much non-existent, which is a huge problem considering it is one of the most frequently used aspects of any language.
I have to reserve my harshest criticism for the MFC section. There isn't much that can be said about it other than if you have never programmed windows before, you won't learn how to do it reading this book. Horton bumbles his way through even the most succinct MFC issues, clearly being at a loss for a way to explain them. A good example of this is that he pretty much expects you to stumble upon the fact that Views and Documents are somehow related. After neglecting fundamentals throughout he rashly dedicates 2 chapters to implementing database communication capabilities, which are a pretty huge deviation from an intro text on MFC. The only saving grace about the book was that it was so useless, it forced me to hack around, with no help, for long enough, that I actually learned something. Unless you are already a fairly competent programmer you will find this book to be more or less unintelligable.
on 9 July 2004
I bought this book about two years ago in order to teach myself a more professional programming language having only programmed using visual basic previously. The book is divided into two halves with the first half providing a detailed introduction to the C++ programming language. The second half gives the reader a tutorial in the Microsoft Foundation Classes (MFC) which are a code library provided by Microsoft that ease Windows programming.
The first half of the book is a fantastic introduction to the C++ language. The text never feels overly difficult while topics are covered in enough depth to give the reader a solid knowledge of the language.
The MFC half of the book is bad enough to be almost useless; although I could follow the examples without too much problem I found that I was unable to write my own MFC programs after reading the book. The book jumps straight into teaching how to write complex MFC programs using application wizards and glosses over all the basics of MFC. Ivor unintentionally spends all his time explaining the examples and no time actually explaining how to use MFC to develop you own programs.
C++ and MFC are both large and separate topics, if you want to learn how to use both I would suggest you buy a separate book for each. Judging by the excellent first half of this book 'Beginning C++: The Complete Language' by the same author would be a good choice. Microsoft Press have an Excellent book on MFC Windows programming by Jeff Prosise.
on 3 October 1998
This book is actually 2 books in one cover which can be purchased separately. The first is a tutorial on C++ and the second on Visual C++ and MFC. Even though I have studied C++ a bit I thought I would buy this one for a review (and to cover what I didn't already know).
I found the C++ tutorials to be excellent. Probably the best of any computer related book I've read. I was able to easily follow the topics that were grouped in logical order. All examples were concise and found no errors which weren't immediately obvious.
I've just begun the Visual C++/MFC sections of the book (though I've skimmed it a bit). These look to be a great start with the foundation presented from the previous chapters. This will probably not be your last book on the topic but will certainly get you going in the right direction.
This book has made me seek out other books by Mr. Horton and strongly consider Wrox. The book is pretty big but there's lots of info there and lots of good examples. Even though I'm a programmer by profession, I consider myself a C++ beginner and couldn't imagine a better resource for learning MS Visual C++.
on 9 October 1998
If you can only buy one VC++ book, this is the one to get. Ivor Horton writes books in very clear fashion, and it is quite obvious that he put a lot of thoughts in organizing and laying out the programming elements and example codes, so that the readers have good orientation and are able to follow the author throughout the book. These days it's getting more and more impossible to cover both programming fundamentals and advanced features in the same volume, and Visual C++ is the best example of such a complicated programming environment. The fact that this book covers both the C++ language elements and the Visual C++ tool sets (IDE, MFC, Database, OLE/COM, ATL) very well invokes great respect from me. If the author decides to elaborate more and add in extra sections about data structures and class library design issues in the next release, this will become a master tutorial and reference that hardly anyone can beat..