Microsoft Visual C++ is part of the Visual Studio suite of development applications along with Visual Basic, Visual FoxPro, Visual InterDev, and now Visual C# which seems to have replaced Visual J++.

The primary purpose of Visual C++ is to provide the programmer with an integrated development environment (IDE) that has syntax highlighting, a tree listing of classes and their members, compilation, debugging and search results, and a highly intuitive interface.

One of the big selling points of Visual C++ is that you can whip out Windows Applications just as fast as you can in Visual Basic, and it hides all that ugly C++ nonsense from the programmer/user unless they decide to learn more about the guts of their programs. With a few deft mouse maneuvers you can slap a button onto a dialog box, and create an event handling macro which maps a button click event to a function which the programmer can fill in with stuff to do when the end user clicks that button. In fact, in a simple program, you don't have to write any native C++ code at all! Just call on some MFC object methods, and you're good to go.

MSVC & MFC

The automated functionality of Visual C++ makes extensive use of the MFC Library which is an object oriented wrapper around the Windows API. All the menus, dialog boxes, UI controls on those dialog boxes, toolbars, status bars all have class representatives in the MFC Library and it is easy to attach a specific widget to a particular class instance. Then to perform an operation on a visible object, such as a status bar, the programmer simply calls a method of the CStatusBar object, and voila.

Having said that, I would suggest that you have a solid grasp of C++ and the Windows API before attempting to write any programs using the MFC library. It can be completely overwhelming and confusing to a novice programmer, no matter how easy Microsoft made it.

The IDE

Another joyous feature in Visual C++ (and across Visual Studio in general) is the debugger. I don't care what people say, I love the debugger. In the MSVC debugger, you can stop the program running on any executable line of code, step through the code one command at a time, and examine any variable or object that is currently in scope. You can view the call stack and there is a handy disassembler. Really, what else could a boy want?

The best feature of this IDE, in my humble opinion, is the List Members functionality. When the programmer needs to call an object's method, they can type in the object name, and magically a dropdown list appears which contains all the available member functions and properties that make up the object. Little lock and key icons represent private and protected members, so you can't use those (there are exceptions), but you can view them, to get a better grasp of what's going on in the class.

All of that is packaged up together with Microsoft's C++ compiler and linker, so what when you think you're ready to try out your program, you punch F5 and out shoots your program. If there are errors, you'll get a list of errors and warnings which are more often than not helpful. Fix the errors, lather, rinse, repeat as necessary.