VC++ 6.0 Takes Solid Steps Forward

Hands On: Microsoft’s Visual C++ 6.0

Microsoft has traditionally divided its tool suite into tools aimed at enterprise and casual developers and tools aimed at hard-core developers. Although both Visual Basic and Visual C++ share a common moniker, the two development environments traditionally have been far apart in the prerequisite skills. Visual C++ users typically lose out when it comes to ease-of-use. Now, Microsoft claims to have heard the cry from C++ developers who want better usability, easier to comprehend frameworks, and more consistent integration between COM’s object model and C++’s object model. Visual C++ 6.0 addresses some of these concerns in a capable new release.

We installed Visual C++ 6.0 without incident on a Compaq Deskpro Pentium 100 with 64 MB RAM, running NT server 4.0. The install process requires a reboot after each component is removed or added, and in our case we rebooted five times. While Visual C++ ran correctly on the low-powered test machine, the IDE seriously taxed the machine.

Productivity Abounds

For those with a blister on the F1-key finger, the inclusion of IntelliSense in Visual C++ is a godsend. Version 6.0 will prompt you as you type, with context-correct lists of available methods, variable, and constants. In other environments supporting a similar function, we’ve found it a big boost to productivity, not just a gimmick. One caveat: Because Visual C++ relies heavily on constants defined using the C-style "#define" rather than the C++-style "const," IntelliSense often doesn’t have enough information to avoid a trip to the help system.

The Class View, which has been available for a number of releases now, updates dynamically, with no need to first save the source files. Help is provided as a separate, but tightly integrated, executable from Microsoft Developers Network (MSDN).

Microsoft provides a coven of new Wizards to accelerate the initial creation of a project. Visual C++ finally offers standard frameworks without Document/View architecture. Other new applications styles include Windows Explorer-style projects, Browser-style projects and Active Document Container projects.

The most pleasant surprise of version 6.0 is the new Edit and Continue option, which allows code to be tweaked and re-executed without stopping the program. While significant limits exist on which code can be edited and re-executed without a full compile, we found this feature a big winner.


Microsoft claims to have increased compiler throughput 15-30 percent in this release, as well as improved speed of the code produced. The linker can now generate code to load dynamic-link libraries (DLLs) on demand, speeding program start-up, while eliminating the need for custom code.


Microsoft Foundation Class (MFC) projects and Active Template Library (ATL) projects have been a pain to integrate in the past. With release 6.0, MFC and ATL can play together better. The IDE allows ATL objects to be inserted into MFC projects, automatically generating the necessary support code. We experimented by inserting an ATL OLE DB Consumer into an MFC project, and had no trouble using the object.

ATL now supports Composite Controls, which lets you easily aggregate super-controls from existing VC++ and ActiveX controls. For both frameworks, the language supports a new "#import" command that converts a COM type library directly into C++ class wrappers.

Enterprise Features

OLE DB is Microsoft’s generic interface to both structured (relational) and semistructured (e-mail, images, geographical) enterprise data. For creating database applications, Visual C++ provides tools that take advantage of existing OLE DB and ODBC providers. While VC++ data access methods are powerful and complete, they are still a far cry from the ease of use found in Rapid Application Development (RAD) tools.

VC++ shines by providing OLE DB templates that make it reasonably easy to create custom Providers and Consumers for a company’s proprietary data structures. By supporting OLE DB, one can open the door to a third-party access to a company’s special content.


Visual C++ 6.0 is evolutionary, not revolutionary. The long promised integration with COM+ and COM language extensions for C++ have been pushed back and will follow the release of Windows 2000. Underscoring the evolutionary nature of the release, Microsoft provides MFC DLLs with the same name as previous versions (mfc42.dll), which can cause compatibility problems. We found some rough edges, including a bug that left temporary files locked when we interrupted a build. Overall, Visual C++ 6.0 is a solid, but not necessary, upgrade to the most popular C++ environment for Windows.

Microsoft Visual C++ 6.0 - Enterprise Edition
Microsoft Corp.
Redmond, WA
(425) 882-8088
Price: From $109 to $1,299, depending on edition and upgrade status.

+ IntelliSense reduces syntax errors, speeds development.
+ Edit and Continue shortens debug cycle.
+ ATL and MFC work together more easily.

- Some bugs encountered.
- ATL and MFC frameworks remain very complex.
- IDE is greedy for resources.