Visual C++ Start Page

Visual C++

Welcome to Microsoft Visual C++ version 6.0! Visual C++ is available in three editions: Standard, Professional, and Enterprise.

The documentation for Visual C++ includes: the Visual C++ Programmer's Guide, the Visual C++ User's Guide, Visual C++ Tutorials, the Microsoft Foundation Classes and Templates, and Languages and Libraries for Visual C++.

Visual C++ is a member of the Visual Studio 6.0 family of development products, which includes:

  • Visual Basic
  • Visual C++
  • Visual FoxPro
  • Visual InterDev
  • Visual J++
  • Visual SourceSafe
  • MSDN Library
Jump to the Visual Studio 6.0 Start Page.

Copyright
Accessibility Information

Getting Started
Find the appropriate place to start with Visual C++.

What's New
New features in Visual C++ 6.0.

Explore the Samples
Sample programs for MFC, ATL, the SDKs, and others.

Readme
Installation issues.

Documentation Map
Become more familiar with the Visual C++ documentation.

Visual C++ 6.0 on the Web


Visual C++ Documentation Map

You can move through the Visual C++ documentation in several ways, depending on the type of information you like to read, the information you know least about, or your preference for accessing information. You can also reference additional material that supplements the Visual C++ documentation.

Programming References

Program Development

New Information

Frequently-Used Topics

The Visual C++ Table of Contents

Getting Help

Programming References

When using Visual C++, you have a choice of programming tools:

  • Active Template Library

  • ActiveX Data Objects (ADO)

  • ATL Tutorials

  • C Language Reference

  • C++ Language Reference

  • Compiler COM Support

  • iostream Reference

  • Language Quick Reference

  • Microsoft Foundation Classes

  • MFC Tutorials

  • OLE DB

  • OLE DB Templates

  • Open Database Connectivity (ODBC)

  • Preprocessor Reference

  • Remote Data Objects (RDO)

  • Run-Time Library Reference

  • Samples

  • SQL Server

  • Standard C++ Template Library

  • Win32 Programming

Program Development

Visual C++ supports many operations related to program development:

  • Automating tasks

  • Bringing existing projects into Visual C++ 6.0

  • Creating a project

  • Building your program

  • Customizing the development environment

  • Debugging

  • Managing projects

  • Using resource editors

New Information

If you have used previous versions of Visual C++, you may be want to read What's New in version 6.0.

Frequently-Used Topics

Here are a few frequently-used topics you may want to bookmark:

  • Compiler Options

  • Linker Options

The Visual C++ Table of Contents

The Visual C++ documentation has been divided into the following sections.

This section Contains
What's New
  • What's New for Visual C++ Version 6.0 — Describes the new features available in Visual C++ 6.0.

  • Visual C++ Editions — Explains which features are included in each edition (Standard, Professional, or Enterprise) of Visual C++ 6.0.
Getting Started
  • Getting Started with Visual C++ — Suggests a few places in which to begin working with Visual C++.

  • If You Want to Comment on the Documentation — Provides contact information if you have comments on the Visual C++ documentation.
Using Visual C++
  • Visual C++ Tutorials — Provides eight tutorials to help you begin learning new areas of the Visual C++ development system.

  • Visual C++ Programmer's Guide — Covers a broad range of subjects, such as programming with C/C++, programming with MFC, and the various primary steps involved in creating your program.

  • Visual C++ User's Guide — Describes the Visual C++ interface. Topics discussed in this section include: UI Basics, Customizing Visual C++, Working with Projects, Working with Classes, Wizards, Text Editor, Resource Editors, the Debugger, Source Code Control, Automating Tasks in Visual C++, and the Windows Utilities.

    Note The Visual C++ User's Guide was called The Developer Studio User's Guide in Visual C++ v5.0.

  • Glossary — Provides definitions for commonly-used terms and acronyms.
Reference
  • Microsoft Foundation Class Library and Templates — Includes a reference to the classes, global functions, global variables, and macros that make up the library, plus a collection of technical notes written by the MFC development team. It also includes two template references: Active Template Library (ATL) and OLE DB Templates.

  • C/C++ Language and Libraries — Contains reference material on: C++ Language, C Language, iostream Library, and the Standard C++ Library
Samples
  • Visual C++ Samples includes six categories of sample code: ATL, Compiler COM Support, Customer AppWizard, MFC, OLE DB Templates, and SDK.

Getting Help

You can access the information in the documentation in several ways, depending on your preferences and needs.

To | Do the following
Find more information on an error message or command | Place the cursor in the error message number or command and press F1.
Learn about the controls in a dialog box | Click the question mark box in the upper-right corner of the dialog box, then click the control you want more information on.
Look up specific information directly, such as the name of a feature or control | Click the Index tab in Help.
Browse for information | Click the Contents tab in Help.
Search across the entire documentation set, and expand or limit your search | Click the Search tab in Help.
Bookmark a topic | While the topic is displayed, click the Favorites tab in Help, then click the Add button.


What's New in Visual C++ Version 6.0

Microsoft® Visual C++ version 6.0 provides many new features, described below.

Compiler

  • __assume Keyword

  • Better Inlining Control

  • Dependencies Now Stored in a Text File

  • Dependency (.dep) File Generation

  • New and Improved Warnings

  • Placement Form of Operator Delete

  • Pragma Warning

  • Run-Time Error Checks

  • Throughput Improvements

Debugger

  • AfxDumpStack for Diagnosing Field-Installed Applications

  • Edit and Continue

  • GetLastError() Value Displayed as Register

  • GUIDs Decoded for Display

  • Improved Disassembler Output (Undecorated Symbols)

  • Improved V-Table and Function Pointer Display

  • In-Process Remote Procedure Calls

  • Load COFF & Exports Option

  • MASM Hex Syntax Supported

  • MMX Register Display

  • Module List Dialog Box

  • New Formatting Symbols

  • Thread Information Block

  • Variants Decoded for Display

Editors

  • Automatic Statement Completion

  • Quick Macro Recording

  • Resource Editor Support for Internet Explorer 4.0 Controls

Linker

  • Delay Load Imports

  • New Options for Linker, DUMPBIN, and EDITBIN

  • Revised Import Library Format

Automation Object Model

  • New Automation Properties and Methods

  • Script Debugger

Projects

  • Command-Line Builds

  • Dynamic Parsing (Dynamic Updating of ClassView)

  • "GoTo Dialog Editor" from ClassView and WizardBar

  • MIDL Options Page: Project Settings Dialog Box

  • "New Form" Command

  • New HTML Resource Type

  • New Project Types: Extended Stored Procedures and Utility Project

  • Support for Environment Variables in the IDE

Wizards

  • AppWizard Enhancements

  • AppWizard support for OLE DB

  • Cluster Resource Type Wizard

  • Custom build rules for Help files

  • Data Access Support in the ATL Object Wizard

  • "Delete Member Function" Command in WizardBar and ClassView

  • Internet Explorer 4.0 (IE4) Control Support in ClassWizard

  • New Dictionary Fields (Macros) for Custom AppWizard

  • New Extended Stored Procedure Wizard

  • New project types

  • Wizards for non-MFC project types

OLE DB Templates

  • Database Access with OLE DB

  • OLE DB Consumer and Provider Templates

  • Schema rowset classes for metadata

Microsoft Foundation Class Library (MFC)

  • Active Document Containment

  • Dynamic HTML Control with CHtmlView

  • Internet Explorer 4.0 Common Controls

  • MFC Classes — New or Updated

  • MFC Globals - New

  • Wizard97 Style for Property Sheets

  • MFC OLE DB Class Added

  • MFC Performance Tuning

  • New MFC Technical Notes

Database Support

  • ADO Data-Bound Dialog Wizard

  • Data-Bound Controls for ADO and OLE DB

  • Oracle Support in the Data Tools

Sample Programs

Tools

  • Component Manager

  • HTML Help Workshop

  • InstallShield Updated

  • Test Container Updated

  • Visual Studio Analyzer

  • Visual Modeler

Windows NT 4.0 Option Pack

  • Certificate Server

  • FrontPage Server Extensions

  • Index Server

  • Internet Connection Services for RAS

  • Internet Information Server (IIS)

  • Mail and News Services

  • Microsoft Data Access Components

  • Microsoft Management Console (MMC)

  • Microsoft Message Queue Server (MSMQ)

  • Microsoft Transaction Server (MTS)

  • Site Server

  • SNA Server

  • Windows Scripting Host

See Also

Visual C++ Editions Home Page

Visual C++ Editions Comparison Chart

What's New in ATL 3.0?


Compiler

The following compiler features are new for Visual C++ 6.0.

__assume Keyword

The __assume keyword is a hint to the optimizer that says that the expression passed as the argument is true until the expression is killed. This keyword can be used in conjunction with assert() during debug builds to ensure that the expression used with __assume is always true. Specifying __assume for an expression enables the compiler to perform additional optimizations, the safety of which could not be determined without this hint from the programmer. For more information, see __assume in the Visual C++ Programmer's Guide.

Better Inlining Control

For better inline control, there are three new keywords: inline, __inline, and __forceinline. The inline and __inline keywords are hints to the compiler to try to inline the function; the optimizer decides whether inlining should be performed based upon optimization switches (optimizing for size vs. speed) and other heuristics. To provide better control over which functions are inlined, the __forceinline keyword is now supported. This keyword tells the compiler to go beyond the current inlining heuristics and to absolutely inline the function(s) to which it is applied, except in cases in which inlining would be impossible. For more information, see inline, __inline, __forceinline in the Visual C++ Programmer's Guide.

Dependencies Now Stored in a Text File

Exported makefiles now put the file dependencies in a separate, editable text file.

Dependency (.dep) File Generation

This feature provides more control over writing dependency information when you export a makefile. You can set options for this feature in the following places:

  • ExportMakefile(s) dialog box (Project menu, Export Makefile… command), Write dependencies when writing makefiles check box

  • Project Settings dialog box (Project menu, Options command), Allow per-configuration dependencies check box

  • Build tab of the Options dialog box (Tools menu, Options command), Always write dependencies when writing makefiles check box

New and Improved Warnings

New compiler warnings have been added to help catch common programming errors.

Placement Form of Operator Delete

The compiler now supports the placement form of operator delete. Consequently, an exception, thrown during the initialization of an object, calls the proper delete function when the placement new is used.

For more information, see delete Operator or new Operator in the Visual C++ Programmer's Guide, or operator new Function in the C++ Language Reference.

Pragma Warning

You can use #pragma warning (push, n) and #pragma warning (pop) to push the current warning state (enabled or disabled) onto a stack and pop it off again. n represents a warning level whose state is to be pushed. You can use this feature when writing headers to ensure that a programmer does not compile the header with a warning level higher than you intend.

Run-Time Error Checks

The Visual C++ compiler can embed certain run-time checks in code to detect common errors. The /GZ compiler option enables these checks. Run-time checks can only be used in debug (/Od) builds. There are new checks for auto-initialization of local variables, function pointer call stack validation, and call stack validation.

Throughput Improvements

Compile-time throughput in projects with large precompiled header files (.pch) is faster. Compiler throughput on debug projects is as much as 30% faster, and on non-debug projects, as much as 15% faster.

Back to What's New Overview


Debugger

The following debugger features are new for Visual C++ 6.0.

AfxDumpStack for Diagnosing Field-Installed Applications

The AfxDumpStack function generates an image of the current stack and dumps that image to the debug output device (for example, afxDump). This feature provides a mechanism with which you can get diagnostic information even if the debugger is not installed on the end user's machine. It can be used in debug and non-debug versions of the MFC libraries.

Edit and Continue

Edit and Continue allows you to incorporate common, simple edits during a debugging session without having to quit the session, rebuild, and restart the debugger. Changes are recompiled and applied to the executing application in memory.

GetLastError() Value Displayed as Register

This is a new pseudo-register called ERR that displays the last error code for the current thread. This pseudo-register is not an actual hardware register, but is displayed as though it were a hardware register. It retrieves the same value as calling the GetLastError function. Using it in conjunction with the ,hr modifier produces very useful output, showing the error message corresponding to each error code. If this register is not found, you should prefix this register with an @ sign.

GUIDs Decoded for Display

Types based on GUIDS (including IIDs, CLSIDs, and REFIIDs) are displayed by name (if found in the registry), or failing that, in the normal GUID hex form.

Improved Disassembler Output (Undecorated Symbols)

The disassembly window and callstack window now undecorate C++ names where they did not before, such as when displaying system callstacks from Windows NT DBG files. You now see the C++ name with a proper argument list.

Improved V-Table and Function Pointer Display

Pointers to functions and v-table entries are now displayed symbolically wherever possible, including parameters. Previously, these items were displayed as just hex addresses in Visual C++ 5.0.

In-Process Remote Procedure Calls

RPC debugging now works with in-process remote procedure calls (RPCs), as well as out-of-process RPCs. See Debugging COM Clients and Servers Using RPC Debugging.

Load COFF & Exports Option

The new Load COFF & Exports option allows additional debugging information to be loaded when the standard CodeView format debugging information is not available. This option enables you to see some useful symbols in the call stack even when CodeView debug information is not available. This option is useful for seeing window messages, for WindowProcs and COM objects, and when marshalling is involved. See Using COFF-Format Information or DLL Exports.

dumpbin /headers: To see what types (formats) of debug information are in a DBG file, issue the command dumpbin /headers against that DBG file and search the output for the Debug Directories section. Then see whether there is an entry of type coff. Type cv refers to CodeView.

dumpbin /exports: If there is no CodeView or COFF debugging information available, (for example, when you are in Windows 95 system files, which don't have .dbg files), the Load COFF & Exports option converts the export table of each loaded DLL into a symbol. To see what sort of symbols this will add for a particular DLL, issue the dumpbin /exports command against that DLL file and examine the output. These DLL files are any 32-bit system DLLs; for example, Ole32.dll or Kernel32.dll. Issuing dumpbin /exports enables you to see the exact function name, so that you can set a breakpoint on that function. For example, MessageBoxA is an actual function name; you might see the function written as "MessageBox" elsewhere, but this output shows that the actual function name you need to set the breakpoint on is MessageBoxA. You can see the exact function name even if the name includes non-alphanumeric characters, such as a period or underscore.

MASM Hex Syntax Supported

The debugger now supports MASM-format hex numbers in expressions, such as 1234h. This can make operations involving the Disassembly window easier, such as viewing DataTips.

MMX Register Display

You can now display MMX registers in the Watch and Quickwatch windows using the symbols MM0-MM7. MMX registers are 64-bit integer registers and will be displayed on all x86 machines, whether they support the MMX instructions or not. See Modifying the Value of a Variable or Contents of a Register.

Module List Dialog Box

This new dialog box displays the address, name, path, and load order for all DLLs used by your program. You can use this dialog box to determine which DLL your program crashed in.

New Formatting Symbols

The following are new symbols for Watch variables: hr, st, mq, wm, and wc.

Thread Information Block

This is a new pseudo-register that displays the Thread Information Block (TIB, also known as a TEB) for the current thread. If this register is not found, you should prefix this register with an @ sign. For more information on the content of TIBs, see "Under the Hood," Microsoft Systems Journal May 96.

Variants Decoded for Display

Variants are automatically displayed in their correct form: integers are displayed numerically, BSTRs as strings, and so on. The type of the variant is also displayed.

Back to What's New Overview


Editors

The following editing features are new for Visual C++ 6.0.

Automatic Statement Completion

The Text editor now features Automatic Statement Completion, also known as IntelliSense. IntelliSense options put the MFC, Win32, and ATL libraries virtually at your fingertips, displaying class members, function prototypes, identifier declarations, and code comments at the cursor or mouse location while you're editing your code. Simple keystrokes insert code elements directly into the source code file in which you're working. IntelliSense also completes recognized words for you, saving you from having to repetitively type lengthy class or member names. See About Automatic Statement Completion.

Quick Macro Recording

Similar to keystroke recording and playback, this feature is a menu shortcut to the more extensive Macro Recording feature. You can record any action supported by the Developer Studio Object Model into a temporary VBScript macro by selecting Record Quick Macro from the Tools menu.

Resource Editor Support for Internet Explorer 4.0 Controls

The Resource editor has support for IE4 controls. You can use this support with or without the MFC wrapper classes. You can access the wrapper classes for Internet Explorer 4.0 Common Controls via the Controls toolbar of the Dialog editor, easily adding these controls to your forms and dialog boxes.

Back to What's New Overview


Linker

The following linker features are new for Visual C++ 6.0.

Delay Load Imports

The new Delay Load Imports linker option allows you to delay loading of DLLs until they are required to continue execution. This removes the requirement that you add code to specifically load a library prior to it being used. It also resolves the problem of making sure you have that code in all of the places that it would be necessary.

New Options for Linker, DUMPBIN, and EDITBIN

Visual C++ 6.0 contains new options that expose more of the operating system functionality and support more platforms.

New linker option | Action
/DELAY, /DELAYLOAD | Affects the delayed loading of DLLs. The linker can now create code that automatically manages delay loading of DLLs. This can be useful when your application links to DLLs but doesn't always need them.
/LARGEADDRESSAWARE | Tells the linker that an application can handle an address space larger than 2 gigabytes.
/LINK50COMPAT | Tells the linker to create an import library in Visual C++ version 5.0 format.
/MAPINFO | Tells the linker to include the specified information in the map file. You can specify the following types of information: exports, relocation fixups, and line numbers.
/SWAPRUN | Tells the operating system to copy the image to a swapfile before beginning execution. Useful for applications residing on a network or residing on reusable media.
/SUBSYSTEM | Now supports the following subsystems: CONSOLE, WINDOWS, NATIVE, POSIX, and WINDOWSCE.

For more information, see Linker Reference in the Visual C++ Programmer's Guide.

Updated linker option | Action
/MAP | No longer includes information about relocation fixups by default. If you want fixup information in the map file, use /MAPINFO to request it.
/MACHINE | Provides some new target platforms. Targets now supported are: Intel x86, MIPS, Alpha, ARM, MIPS R41XX, PPC, SH3, and SH4.

New DUMPBIN option | Action
/ARCH | Dumps the arch section of an image.
/DEPENDENTS | Dumps the names of the DLLs from which an image imports functions.
/DIRECTIVES | Dumps the compiler-generated directive section of an image.
/PDATA | Dumps the execution tables (pdata) from an image.

New EDITBIN option | Action
/LARGEADDRESSAWARE | Edits the image to indicate that the application can handle an address space larger than 2 gigabytes.
/SUBSYSTEM | Supports the following subsystems: CONSOLE, WINDOWS, NATIVE, POSIX, and WINDOWSCE.
/VERSION | Places a version number into the header of an image.
/WS | Adds the WS_AGGRESSIVE attribute to the image. WS_AGGRESSIVE instructs the loader to trim the working set of the process when the process is inactive. Used for applications such as services and screensavers where memory use must be kept to a minimum.

Revised Import Library Format

The import library format has been revised to reduce the size of library files, including the library files that you create. Most files are 50-75% smaller.

Back to What's New Overview


Object Model

Automation Object Model

Shell scripting (automation) has been enhanced in Visual C++ 6.0 to give you more flexibility in creating and building projects.

New Automation Properties and Methods

New property | Action
IConfiguration::Configurations | Gets the Configurations object for the project. The Configurations object contains all configuration objects which are in the subprojects of this project and have a matching configuration name.
IApplication::Errors | Gets the number of errors that occurred during the last build.
IApplication::Warnings | Gets the number of warnings that occurred during the last build.

New method | Action
IBuildProject::AddConfiguration | Adds a configuration to the project.
IConfiguration::AddCustomBuildStepToFile | Adds a custom build step to a specified file.
IBuildProject::AddFile | Adds a file to the project.
IConfiguration::AddFileSettings | Changes the settings of a specified file.
IApplication::AddProject | Creates a new project and adds it to the workspace.
IApplication::Clean | Cleans a specified configuration by deleting all intermediate and output files generated by the configuration.
IConfiguration::MakeCurrentSettingsDefault | Changes the default settings for this configuration to the values of the current settings.
IConfiguration::RemoveFileSettings | Removes the settings of a specified file.

See Overview: Automation and Reference: Developer Studio Objects.

Script Debugger

If you have Visual Studio installed, the Script Debugger enables you to debug shell automation scripts, as well as HTML pages that contain Visual Basic® Scripting Edition (VBScript) or JScript™ (Microsoft's implementation of JavaScript™). If your shell script contains an error, a dialog box automatically appears and prompts you to run the Script Debugger. See also Script Debugger (http://www.microsoft.com/scripting/debugger).

Back to What's New Overview


Projects

The following project-oriented features are new for Visual C++ 6.0.

Command-Line Builds

The new MSDEV command allows you to build a Visual C++ project from the command line without first exporting a makefile (projname.mak) and running the NMAKE utility. See Building a Project from the Command Line.

Dynamic Parsing (Dynamic Updating of ClassView)

When you type a new class, variable, or member function, Visual C++ updates ClassView and WizardBar to display the new items, without requiring you to save changes first.

"GoTo Dialog Editor" from ClassView and WizardBar

You can now jump directly to the Dialog editor from a class that implements the dialog box.

MIDL Options Page: Project Settings Dialog Box

There is new support for .idl files; you no longer have to use a custom build step. See Using the MIDL Compiler.

"New Form" Command

The New Form command is new to Visual C++ 6.0. This command generates a form and is available from the Insert menu and from ClassView and WizardBar. This command is essentially a ClassWizard for CFormView (see Forms-Based Applications), CDialog, and the database view classes. Unlike the ClassWizard, the New Form command also creates a dialog box with all the appropriate options.

New HTML Resource Type

There is a new resource type: HTML. You can insert an HTML resource by choosing Resource from the Insert menu.

New Project Types: Extended Stored Procedures and Utility Project

There are two new project types available through AppWizard. The Extended Stored Procedures project type is for the Enterprise Edition and supports OLE DB. Utility project types support projects that do not need a Link step in the build process.

Support for Environment Variables in the IDE

There is now support for using environment variables in the IDE.

Back to What's New Overview


Wizards

The following wizards features are new for Visual C++ 6.0.

AppWizard Enhancements

In Visual C++ 6.0 there are more options when you are using MFC AppWizard to create an executable. AppWizard now supports single-document interface or multiple-document interface applications that are not based on the Document/View architecture. This enables streamlined use of MFC for applications that aren't document based. AppWizard also supports toolbars that work like Internet Explorer Rebar controls, Active Document Containment, Windows Explorer-style applications, and Web Browser-Style applications (by using CHtmlView).

AppWizard Support for OLE DB

You can now select an OLE DB data source from AppWizard, in addition to DAO or ODBC. This wizard uses the MFC support for the OLE DB templates. (This feature is not the same as ATL OLE DB Provider support). If you go to Step 2 of the MFC EXE AppWizard and select Database support, there is now a third option to choose from in the dialog box: select OLE DB and then specify the data source you want to include in the project. This is usually disabled unless you have OLE DB installed on your system.

Cluster Resource Type Wizard

The Cluster Resource Type Wizard generates two projects for implementing a Microsoft Cluster Server (MSCS) resource type. Writing a custom resource type allows an application to be more closely managed and monitored by MSCS. A Resource DLL project produces a DLL that is loaded by an MSCS resource monitor on a cluster node to manage and monitor the application. A Cluster Administrator Extension DLL project produces a COM in-proc server DLL for providing a user interface for managing resources of this new type. See Creating a Microsoft Cluster Resource Type and Beginning Your Program Home Page.

Custom Build Rules for Help Files

To generate Help files, AppWizard now uses custom build rules instead of MakeHelp.bat, so each source file is only rebuilt when necessary. MakeHelp.bat is still provided for backward compatibility.

Data Access Support in the ATL Object Wizard

There is a new category in the ATL Object Wizard called "Data Access". This new category contains two wizards: Consumer and Provider.

"Delete Member Function" Command in WizardBar and ClassView

You can now delete a member function by using the Delete command on the WizardBar menu or by using the ClassView shortcut menu. The Delete command removes the function declaration from the header (.h) file and removes any associated message map entry. It also removes entries from the SINK map, which is an ATL map used in handling events. Finally, it comments out the function definition, if one exists. The function body remains selected so that you can easily delete it.

Internet Explorer 4.0 (IE4) Control Support in ClassWizard

ClassWizard now supports Add Message Handler and Add Variable for the four controls that are supported in the resource editor. You can also add new classes whose base class is one of the four new MFC IE4 control classes.

New Dictionary Fields (Macros) for Custom AppWizard

The Custom AppWizard has the following new dictionary fields:

  • Step 1, Project Type Options: PROJTYPE_GEN, PROJTYPE_MAK, PROJTYPE_LIB, PROJTYPE_CON, PROJTYPE_OCX, NODOCVIEW, and EXPLAIN_PROJTYPE.

  • Step 2, Database Options: OLEDB.

  • Step 4, Application Options: REBAR and APPWIZ_INITIAL_DLG.

  • Step 5, Project Options: PROJTYPE_EXPLORER.

  • Step 6, Class and File Names: TREEVIEW_CLASS, TREEVIEW_BASE_CLASS, TREEVIEW_IFILE, TREEVIEW_HFILE, WNDVIEW_CLASS, WNDVIEW_BASE_CLASS, WNDVIEW_IFILE, and WNDVIEW_HFILE.

  • CHtmlView — a new macro to define that indicates the main view's base class. See Web Browser-Style Applications.

  • Miscellaneous Macros: YEAR and LICENSED.

New Extended Stored Procedure Wizard

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Visual C++ now has an Extended Stored Procedure AppWizard for creating a SQL Server extended stored procedure. An extended stored procedure is an extern C function, exported from a Win32 .dll, that you can call from within SQL Server.

New Project Types

Custom AppWizards now support Utility projects, Makefile projects, Static library, Console application, and ActiveX control projects. See The MFC AppWizard (EXE version): Step-by-Step, AppWizard Programming Reference, and New Dictionary Fields (Macros) for Custom AppWizard.

Wizards for Non-MFC Project Types

Wizards for non-MFC project types

There are now wizards for all non-MFC project types, such as Win32 Application, Console Application, Dynamic Link Library, or Static Library. Instead of just creating a completely empty, generic project, these AppWizards enable you to specify options; they produce boilerplate code for non-MFC apps.

Back to What's New Overview


OLE DB Templates

The following OLE DB Templates features are new for Visual C++ 6.0.

Database Access with OLE DB

Using OLE DB Consumer Templates, you can access databases from your program. You can also view data with the new COleDBRecordView MFC class.

OLE DB Consumer and Provider Templates

OLE DB is the newest data-access methodology from Microsoft. It merges the power of COM with data-access technology. Visual C++ now abstracts the COM interfaces by providing OLE DB Templates. These templates make OLE DB much easier to use while providing excellent performance and using native C data types for OLE DB programming. The new COleDBRecordView class is an optional MFC class that wraps the OLE DB Consumer and Provider templates. This class incorporates the OLE DB templates into MFC. See OLE DB Consumer and Provider Templates.

Schema Rowset Classes for Metadata

If you need to get metadata from a data source, you can use the OLE DB consumer template schema rowset classes. These classes encapsulate many of the details that are required for retrieving metadata. See Schema Rowset Support in the OLE DB Templates.

Back to What's New Overview


Microsoft Foundation Class Library (MFC)

The following MFC features are new for Visual C++ 6.0.

For MFC issues that may affect porting to Visual C++ 6.0, see Changes from MFC Version 4.22.

Active Document Containment

Active Document Containment provides a single frame in which to work with documents, instead of requiring you to create and use multiple application frames for each document type. It differs from basic OLE technology in that OLE works with embedded objects within a compound document in which only a single piece of content can be active. With Active Document Containment, you activate an entire document, that is, an entire application, including associated menus and toolbars, within the context of a single frame. AppWizard automates the MFC coding required for Active Document Containment. Active Document Containment is implemented by using the new class COleDocObjectItem.

Dynamic HTML Control with CHtmlView

A new MFC class, CHtmlView, enables you to host Dynamic HTML within your MFC applications. CHtmlView allows your application's view to display HTML pages that contain Dynamic HTML just as a Web browser would display them. CHtmlView provides many browser features, including a history list, favorites (bookmarks), and security features. See Web Browser-Style Applications.

Internet Explorer 4.0 Common Controls

MFC provides support for the latest Internet Explorer 4.0 common controls in classes such as CComboBoxEx, CDateTimeCtrl, CIPAddressCtrl, and CMonthCalCtrl. You can access these controls from the Controls toolbar in the Dialog editor. In addition to these new control classes, new functionality was added to most of the existing MFC common control classes. These modifications include flat toolbars, image list support for several control types (such as header, toolbar, and status bar controls), and new attributes. These new properties are also supported in the Dialog editor controls.

MFC Classes — New or Updated

Class | Control | Status | Description
CComboBoxEx | Extended combo box | New | Extends the combo box control by providing support for image lists.
CDateTimeCtrl | Date and time picker | New | Supports either an extended edit control, or a simple calendar interface control, that allows a user to choose a specific date or time value.
CHeaderCtrl | Header | Updated | Supports drag-and-drop operations and bitmaps in a header control.
CHtmlView | No | New | Supports a control for Web browsing within an application. The control supports Dynamic HTML in MFC.
CHttpServer | No | Updated | Includes a new function for writing data to the server.
CHttpServerContext | No | Updated | Includes new functions that provide control over the size of chunks written to the HTTP server.
CImageList | Image list | Updated | Supports images used by other controls, for example, in header controls and list controls.
CInternetSession | No | Updated | Supports setting cookies for a specified URL, returning cookies for a specified URL and all its parent URLs, and retrieving the variable specifying the length of the cookie stored in the buffer.
CIPAddressCtrl | Address | New | Supports an edit box for manipulating an Internet Protocol (IP) address.
CListCtrl | List | Updated | Supports the grouping of items using working areas. Also supports virtual list views.
CMenu | No | Updated | Supports assigning or retrieving a default menu item on a specified menu, and retrieving information about a menu item.
CMonthCalCtrl | Month calendar | New | Supports a simple calendar interface control that allows a user to select a date.
COleClientItem | No | Updated | Contains a new function that retrieves a handle to an icon associated with the server of a particular CLSID.
COleDBRecordView | No | New | Provides MFC OLE DB support for form views.
COleDocObjectItem | No | New | Supports active document containment.
COleDateTime | No | Updated | Supports converting time information stored in the object to a Win32-compatible SYSTEMTIME structure.
CProgressCtrl | Progress | Updated | Supports smooth and vertical styles for progress controls.
CPropertySheet | No | Updated | Supports property sheets with stacked or scrolling tabs.
CPropertySheetEx | No | New | Supports the Wizard97 style of property sheets, available with Windows 98 and Windows NT 5.0.
CPropertyPageEx | No | New | Supports the Wizard97 style of property pages, available with Windows 98 and Windows NT 5.0.
CReBar | No | New | Supports a toolbar that can contain additional child windows in the form of controls.
CRebarCtrl | Rebar | New | Implements the internal control of the CRebar object.
CSliderCtrl | Slider | Updated | Supports ToolTips in a slider control and additional slider control styles.
CSpinButtonCtrl | Spin button | Updated | Supports 32-bit ranges in a spin button control.
CStatusBar | No | Updated | Supports ToolTips, icons, and background color in a status bar.
CStatusBarCtrl | Status bar | Updated | Implements the internal control of the CStatusBar object.
CString | No | Updated | Supports enhanced string finding, replacing, removing, inserting, deleting, and formatting.
CTabCtrl | Tab | Updated | Supports new styles for tab focus and appearance. Also supports inserting new tabs into an existing tab control.
CTime | No | Updated | Supports converting time information stored in the object to a Win32-compatible SYSTEMTIME structure.
CToolBar | No | Updated | Supports Internet Explorer 4.0 flat and transparent toolbar styles.
CToolBarCtrl | Toolbar | Updated | Implements the internal control of the CToolBar object.
CToolTipCtrl | Tool tip | Updated | Implements updating of a ToolTip and its attributes.
CTreeCtrl | Tree | Updated | Supports check boxes and automatic single-node expansion in a tree control.

For fixes and porting considerations, see Changes from MFC version 4.22 in the Visual C++ Programmer's Guide.

MFC Globals — New

MFC contains two new globals. AfxCheckError tests the passed SCODE to see if it is an error. This function can be used to check the return values of calls to OLE functions in your application. AfxDumpStack indicates the target of the dump output. This function can be used to generate an image of the current stack.

Wizard97 Style for Property Sheets

Wizard97 is a new wizard style for property sheets and property pages for Windows 98 and Windows NT 5.0. MFC implements this support in two new classes, CPropertySheetEx and CPropertyPageEx. These new classes support structures that are not compatible with CPropertySheet and CPropertyPage. The Wizard97 styles support background bitmaps and wide title headers, including subheaders, in a property page.

MFC OLE DB Class Added

The new COleDBRecordView class is an optional MFC class to wrap the OLE DB Consumer and Provider templates. This class incorporates the OLE DB templates into MFC. See AppWizard Enhancements and Data Access Support in the ATL Object Wizard.

MFC Performance Tuning

The static link size of the MFC library has been tuned.

New MFC Technical Notes

There are two new MFC technical notes: TN070: MFC Window Class Names and TN071: MFC IOleCommandTarget Implementation.

Back to What's New Overview


Database Support

The following database support features are new for Visual C++ 6.0.

ADO Data-Bound Dialog Wizard

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

The ADO Data-Bound Dialog Wizard is a Visual C++ component that guides you through the process of creating an MFC data-bound dialog box with ActiveX Data Objects (ADO). Help for the wizard is available via the More Info button in the Component and Controls Gallery. See Manipulating Data with Active Data Objects (ADO) in DHTML Object Model Support for Data Binding.

Data-Bound Controls for ADO and OLE DB

To enable you to use ADO rather than RDO for data access, there is a new datasource control called the ADO Data Control (ADODC). This allows you to access any data exposed via an OLE DB data provider. Thus, you are not restricted to accessing data from SQL-based RDBMSs.

See Database Topics (Data-Bound Controls), Using the ADO Data Control, Using the DataCombo and DataList Controls, and Using the Microsoft Hierarchical FlexGrid Control.

Oracle Support in the Data Tools

This version of the Microsoft Visual Database Tools™ gives you more power and flexibility when working with databases. The Database Designer and Query Designer work with the latest versions of SQL Server, Oracle, and Microsoft Access databases. With this release, Oracle database support has been enhanced in the Visual Database Tools. Now you can use the visual design tools to manage your Oracle databases. See What's New in Visual Database Tools.

Back to What's New Overview


Sample Programs

The following samples are new for Visual C++ 6.0.

ATL Samples

Sample name | Description
ATLTangram | Demonstrates managing a large ATL project with multiple project dependencies in the IDE. Also demonstrates some basic COM concepts.
ATLMOVIE | Demonstrates using compiler COM support and the Active Movie interfaces to play a movie. in an ATL control.
ATLFIRE | Demonstrates how to build a windowed control using ATL. This sample is adapted from the MFC FIRE sample.
ATLDUCK | Demonstrates using connection points with ATL controls.

See Also ATL Samples Index

Compiler COM Support Samples

Sample name | Description
ADOSAMP | Implements a three-tier client/server application.

See Also Compiler COM Support Samples Index

MFC Samples

Sample name | Description
CMNCTRL1 | Demonstrates how to create and change the styles of Windows Common Controls using MFC classes (Part 1).
CMNCTRL2 | Demonstrates how to create and change the styles of Windows Common Controls using MFC classes (Part 2).
LISTHDR | Demonstrates the List View and Header Common Controls.
DBVList | Demonstrates the virtual list view functionality available for the list view common control.
TSTCON | Implements an ActiveX control container using MFC's support for OLE embedding. You can use TSTCON to test ActiveX controls, change their properties, and invoke their methods.
Pinball | An Internet Server Extension DLL that provides graphics and also redirects users to a Web site for further research.
StockTicker | An MFC and ATL application that retrieves stock quotes from the Web and displays them in an ATL control. The user can set the display's properties, including rate of data refresh.
MFCIE | Uses MFC's CHtmlView and CReBar classes to implement a subset of the functionality provided by Microsoft Internet Explorer.
MFCBIND | Shows how to create an ActiveX document (formerly known as a DocObject) container using the ActiveX document container support classes.
WIZARD97 | Demonstrates implementing a wizard that supports background bitmaps and wide header titles and images. This wizard design is supported for Windows 98 and Windows NT 5.0; you must be using Windows 98 or Windows NT 5.0 for this sample to work properly.
MFCRows | Shows how to use COleDBRecordView to scroll through a table in a database. Also how to use multiple accessors so you can update an Access table that contains an AutoNumber field to be retrieved.

See Also MFC Samples Index

OLE DB Samples

  • OLE DB Samples Index

Visual C++ Developer Studio Add-in Samples

  • Add-in Samples Index

Back to What's New Overview


Tools

The following tools are new for Visual C++ 6.0.

Component Manager

The Component Manager lets you store and share objects between software tools and custom reusable components. The Component Manager was developed in order to deliver improved support for reuse, dependency tracking, tool interoperability, data resource management, and team development.

HTML Help Workshop

HTML Help 1.1 enables you to provide HTML-based context-sensitive help that can be integrated with the Web. HTML Help is an alternative to Windows Help. For authoring, you use HTML Help Workshop rather than Help Compiler Workshop. See Help Topics (HTML Help): Context-Sensitive Help for Your Programs, Getting Started with HTML Help, and HTML Help (http://microsoft.com/workshop/author/htmlhelp).

InstallShield Updated

The latest version of InstallShield is provided in Visual C++ 6.0. See Creating a Setup and an Uninstall Program .

Test Container Updated

Test Container is now more robust and provides additional features, such as support for OCX 96 features, including windowless controls, inactive controls, flicker-free activation, and quick activation. Test Container also provides VBScript support for writing test scripts, selective enable/disable of container features to simulate different container environments, and selective logging of events, property changes, and property edit requests.

Visual Studio Analyzer

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Visual Studio Analyzer server-side components provide information about the Microsoft components, such as COM, ADO, and MTS, running on a particular machine. You can use this information with the Visual Studio Analyzer client to understand what a distributed application is doing, what the performance of a distributed application is, and where problems are occurring in a distributed application. Install the Visual Studio Analyzer server-side components on each machine you want to monitor with Visual Studio Analyzer.

Visual Modeler

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

The Visual Modeler generates C++ classes from your model, so you can model, design, and construct object oriented code using properties, components, classes and interfaces. See ENROLLVM: Demonstrates Modeling of a Visual C++ Application.

Back to What's New Overview


Windows NT 4.0 Option Pack

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Visual C++ 6.0 Enterprise Edition now includes the Microsoft Windows NT® 4.0 Option Pack. The Windows NT Option Pack delivers a set of new application services that enable the development of the next generation of distributed network applications for both Windows NT Server 4.0 and also takes advantage of the next major release — the Windows NT Server 5.0 operating system. See Microsoft Windows NT 4.0 Option Pack (http://backoffice.microsoft.com/downtrial/optionpack.asp).

The Windows NT Option Pack contains the following components.

Certificate Server

Microsoft Certificate Server provides customizable services for issuing and managing certificates used in software security systems employing public-key cryptography. Certificate Server performs a central role in the management of software security systems to enable secure communications across the Internet, corporate intranets, and other nonsecure networks. See Introducing Certificate Server.

FrontPage Server Extensions

The FrontPage Server Extensions implement the FrontPage server-resident portions in three areas: authoring (uploading/downloads documents, updating the To Do List), administration (setting end user, author, and administrator permissions), and dynamic content (browse-time WebBot components). See FrontPage Server Extensions (http://www.microsoft.com/frontpage/wpp/kit/primer.htm).

Index Server

Microsoft Index Server works with Windows NT Server 4.0 operating system and Internet Information Server 2.0 to provide your organization access to all of the documents stored on your intranet or Internet site. It allows you to easily perform full-text searches and retrieve all types of information from any Web browser. See Index Server 2.0: What's New and Useful (http://www.microsoft.com/ntserver/guide/indexserver.asp).

Internet Connection Services for RAS

The Internet Connection Services for RAS include new Microsoft Connection Manager (CM), Connection Manager Administration Kit (CMAK), Internet Authentication Services (IAS), and Connection Point Services (CPS). See Internet Connection Services for Microsoft RAS Features (http://www.microsoft.com/communications/rasfeatures.htm).

Internet Information Server (IIS)

Windows NT Server with Internet Information Server (IIS) 4.0 makes it easy to share documents and information and, for the first time, deploy scalable and reliable Web-based applications. This new generation of networked business solutions brings legacy data and applications to the Web and enables redefining internal and external business processes. See Overview of Microsoft Internet Information Server 4.0 (http://www.microsoft.com/products/prodref/534_ov.htm).

Mail and News Services

Microsoft SMTP Service uses the standard Internet protocol Simple Mail Transfer Protocol (SMTP) to transport and deliver messages based on specifications in Request for Comments (RFC) 821 and RFC 822. It also includes enhancements that build upon the basic delivery functions of the protocol. There are options available that give you control over the routing and delivery of messages and that provide secure communications.

The Microsoft NNTP Service enables you to create newsgroups, to share information with colleagues. Creating newsgroups with Microsoft NNTP Service makes it easy for users in your organization to engage in discussions on various topics with each other and with users outside the organization.

Microsoft Data Access Components

The Microsoft Data Access Components (MDAC) enable easy use of databases with support for ActiveX Data Objects and the Microsoft Access driver. This release enables access to information across an organization, from the desktop to the enterprise. MDAC 1.5 is released as an integrated set of components and includes ActiveX™ Data Objects (ADO) 1.5, OLE DB 1.5, and Open Database Connectivity (ODBC) 3.5. MDAC is integrated with Microsoft Internet Explorer 4.0 and has enhancements to ADO and support for remote users. See Microsoft to Release Microsoft Data Access Components 1.5 (http://www.microsoft.com/data/mdac15_press.htm).

Microsoft Management Console (MMC)

For integration, delegation, task orientation, and overall interface simplification, the Microsoft Management Console (MMC) provides an improved environment in which Microsoft and ISVs can present management tools called snap-in components (snap-ins). Microsoft Management Console is a Windows®-based multiple document interface (MDI) application that makes extensive use of Internet technologies. See Purpose of the Console.

Microsoft Message Queue Server (MSMQ)

Microsoft Message Queue Server (MSMQ), also known by its code name Falcon, makes it easy for application programs to communicate with other application programs quickly, reliably, and asynchronously by sending and receiving messages. MSMQ offers ActiveX support, dynamic routing and configuration, multiple delivery and acknowledgment options, and integration with Windows NT security facilities. MSMQ also offers interoperability with other key platforms and applications, such as IBM's CICS and MQSeries, through products from Level 8 Systems. See MSMQ Features (http://www.microsoft.com/ntserver/guide/msmq_over.asp).

Microsoft Transaction Server (MTS)

Microsoft Transaction Server (MTS) is a component-based transaction processing system for developing, deploying, and managing high-performance, scalable, and robust enterprise, Internet, and intranet server applications. See What's New in MTS.

Site Server

Site Server is a comprehensive Web site environment for enhancing, deploying, and managing rich intranet and Internet Web sites. Site Server provides ways for businesses to understand more about their users, deliver more relevant information, and better appeal to shoppers. See What's New in Site Server 3.0 (http://www.microsoft.com/siteserver/guide/whatsnew.asp).

SNA Server

Microsoft SNA Server is a comprehensive gateway and application integration platform that enables you to use Internet, intranet, and client-server technologies while preserving investments in existing AS/400 and mainframe systems. SNA allows developers to preserve existing CICS and IMS environments while moving to a three tier client/server or Web-to-host computing environment. See Overview of Microsoft SNA Server 4.0 (http://www.microsoft.com/products/prodref/601_ov.htm).

Windows Scripting Host

The Microsoft Windows Scripting Host is a language-independent scripting host for ActiveX™ scripting engines on 32-bit Windows platforms. Windows Scripting Host will be integrated into Windows 98, Windows NT Workstation version 5.0, and Windows NT Server version 5.0. See About Windows Scripting Host.

Back to What's New Overview


Visual C++ Editions

About the Visual C++ Editions

Microsoft Visual C++ version 6.0 is available in three editions: Standard, Professional, and Enterprise.

The Standard Edition Learn the C++ language while using the professional Visual C++ tool set. The Standard Edition contains all of the features of the Professional Edition except code optimizations, the Profiler, and static linking to the MFC Library.
The Professional Edition Develop applications, services, and controls for Win32 platforms, including Windows 95 and Windows NT. You can target the operating system's graphical user interface or console APIs.
The Enterprise Edition Develop and debug client-server applications for Internet or intranet use. The Enterprise Edition includes tools for working with SQL databases and debugging SQL stored procedures in addition to all the features of the Professional Edition. The Visual SourceSafe source-code control system simplifies developing in a team environment.

Comparison Chart of of Features in Each Edition

What's New in Visual C++ 6.0?


Comparison Chart of Features in Each Visual C++ Edition

The following table shows which features are in each edition (Standard, Professional, or Enterprise) of Visual C++ 6.0.

Feature | Standard | Professional | Enterprise
License for distributing applications | Y (new) | Y | Y
MFC Database Classes | Y | Y | Y
Active Template Library (ATL) | Y | Y | Y
Automatic Statement Completion (new) | Y (new) | Y (new) | Y (new)
Client-server applications development | Y | Y | Y
OLE DB Templates (new) | Y (new) | Y (new)
Code optimization | Y | Y
Profiler | Y | Y
Static linking to the MFC Library | Y | Y
Databound controls (RemoteData) | Y | Y
InstallShield | Y | Y
Custom AppWizard | Y | Y
Visual Database Tools | Y (new, some) | Y
Extended Stored Procedure Wizard (new) | Y (new)
Visual SourceSafe | Y
SQL debugging | Y
SQL Server 6.5 Developer Edition | Y
SQL Server 6.5 Service Pack #3 | Y
Visual Modeler (new) | Y (new)
ASA400 database access via OLE DB (new) | Y (new)
Microsoft Transaction Server | Y
Internet Information Server 4.0 (new) | Y (new)

Notes:

"Y" means the feature is included.

"(new)" means the feature is new, or new for the edition.

"(some)" indicates that some but not all aspects of the feature are available for the edition.

See Also

Visual C++ Editions

What's New for Visual C++ Version 6.0?


What's Included in the Standard Edition?

What's Included in the Visual C++ Standard Edition?

The Microsoft Visual C++ version 6.0 Standard Edition (formerly called the Learning Edition) includes a rich variety of professional tools to help you learn C, C++, and many other professional technologies such as MFC, OLE, ODBC, DAO, ActiveX, and COM.

The Standard Edition is packaged with a book and C++ tutorial (on CD-ROM) that helps you learn how to use Visual C++.

The Standard Edition is comprised of features found in the Professional Edition, with the following exceptions:

  • Static linkage to MFC

    Static linking allows you to include the MFC library in your program’s compilation, thereby resolving MFC references at link time and not at run time. So, if you write programs that use the MFC library with the Standard Edition, the resulting executable will require that the MFC library code be available as a shared library (DLL). Calls to the MFC library that you place in your code are resolved at run time and not at link time.

  • Code optimization

    Code optimization, implemented with the compiler’s /O compiler options, make your final executable files (EXE) and dynamic-link files (DLL) smaller or faster.

  • Profiling

    The Visual C++ source code profiler helps you determine which parts of your code could benefit from performance modifications.

  • The RemoteData control and other data-bound controls

    The RemoteData control and the DBGrid, DBCombo, and DBList controls are for use with data-access clients and are only found in the Professional and Enterprise editions.

  • Custom AppWizard

    The Custom AppWizard project type allows you to create an AppWizard that you will subsequently use to create projects with customized starter files.

  • InstallShield

    InstallShield is a program packaged with the Professional and Enterprise editions that lets you package your application in a setup program for easy installation.

  • Cluster Resource Wizard

    The Cluster Resource Type Wizard generates two projects for implementing a Microsoft Cluster Server resource type. Writing a custom resource type allows an application to be more closely managed and monitored by MSCS. The two generated projects are a resource DLL project, which produces a DLL which is loaded by an MSCS resource monitor on a cluster node to manage and monitor the application, and a Cluster Administrator extension DLL project, which produces a COM in-proc server DLL for providing a user interface for managing resources of this new type.

See Also

Visual C++ Editions

Comparison Chart of Features in Each Edition

What's New for Visual C++ Version 6.0?

Visual C++ Tutorials


What's Included in the Professional Edition?

What's Included in the Visual C++ Professional Edition?

The Professional Edition of Microsoft Visual C++ version 6.0 provides features that let you develop and distribute commercial-quality software products.

The Professional Edition includes the following features (see the Visual C++ Documentation Map for another high-level look at the Visual C++ product):

Programming Features

  • Microsoft Foundation Classes

  • Active Template Library

  • Support for Common Controls in Internet Explorer

  • Compiler COM Support

  • OLE DB Provider and Consumer Templates

  • Component Object Model (COM)

  • Active Document Containment

  • Samples

  • C/C++ Run-Time Libraries

The Internet

  • Internet Server API (ISAPI) Extensions

  • CHttpConnection (and other CHttp* MFC classes)

  • CInternetConnection (and other CInternet* MFC classes)

ActiveX Controls

  • Composite Control Fundamentals

  • Developing MFC ActiveX Controls

  • Developing ATL ActiveX Controls

  • Ready-to-Use ActiveX Controls

Project Features

  • Wizard Support for Creating Applications

  • Integrated Development Environment and more IDE topics

  • Debugging Your Application

  • Source Code Profiler

  • Component and Object Gallery

  • InstallShield

Optimizations

  • Inline Optimizing of Your Code

  • Compiler Optimization Options

  • Linker Optimizations (/OPT)

  • C++ Exception Handling

Database Support

  • ActiveX Controls for Databinding

  • ADO

  • Read-only versions of Microsoft Visual Database Tools (Enterprise Edition has full-feature Visual Database Tools)

See Also

Visual C++ Editions

Comparison Chart of Features in Each Edition

What's New for Visual C++ Version 6.0?

What’s Included in the Visual C++ Enterprise Edition?

What’s Included in the Standard Edition?


What's Development for the Enterprise?

What's Development for the Visual C++ Enterprise?

Visual C++ Enterprise Edition is best suited for developers building distributed database applications in a team environment. For these developers, SQL debugging and MTS are integrated into the development environment making development of distributed-transaction-oriented applications faster and easier. (SQL Server and MTS come with the Enterprise Edition of Visual C++.) The Enterprise Edition also includes Microsoft Visual Source Safe, a tool that allows a team of developers to share and mutually update a common repository of source code.

The Visual Studio book Developing for the Enterprise is a good resource for information on developing enterprise applications. Developing for the Enterprise includes chapters on data access technology, application architecture, security, performance tuning, and more. To get started, see Chapter 1, What is an Enterprise Application?.

Visual C++ Enterprise Edition

What's included in the Visual C++ Enterprise Edition?

What's new for Visual C++ version 6.0 (including new Enterprise features)?

Samples

OLE DB Templates Samples Index

Visual C++ Samples Home Page

Island Hopper News

See Also

Visual C++ Editions

Comparison chart of features in each edition


What's Included in the Visual C++ Enterprise Edition?

The Enterprise Edition of Microsoft Visual C++ 6.0 provides many tools and components for building and validating enterprise-level distributed Component Object Model (COM) applications. It includes all the features that are in Professional Edition, plus the following features:

  • Microsoft Transaction Server

  • Visual Database Tools

  • SQL Editor

  • SQL Debugger

  • MFC Database Classes

  • ADO Data Binding

  • AppWizard and Data Sources

  • Remote Automation Components

  • MFC Data Binding

  • Visual SourceSafe

  • Remote Automation

See Also

Choosing DAO or ODBC

Visual C++ Editions

Comparison chart of features in each edition

What's new for Visual C++ version 6.0?


Microsoft Transaction Server

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

The Microsoft Transaction Server provides development tools and run-time services for building high-performance scaleable transaction applications. The programming model includes transactional components, instance streams, location transparency, naming, declarative security, thread pooling, instance recycling, and class factory caching. In addition, two or more components can share global variables accessed by name or property index. The ODBC resource dispenser manages pools of database connections for Microsoft Transaction Server components that use the standard ODBC interfaces. This allows quick and efficient database connections.

For more information, see Microsoft Transaction Server.


Visual Database Tools

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Visual Database Tools consists of a Query Designer and a Database Designer. With the Query Designer you can graphically create SQL statements to query or update databases. With the Database Designer, you can create, edit, and delete database objects for Microsoft SQL Server 7.0 databases as well as for Oracle version 7 and 8 databases.

For more information, see Visual Database Tools.

Microsoft Visual C++ Enterprise Edition also provides the Data View pane in the project workspace window. Data View simplifies working with one or more ODBC data sources. You can use Data View to do the following with data sources:

  • Add or remove a data source from a project.

  • Refresh the local version of a data source from the original version.

  • Add a new stored procedure or trigger or edit existing ones.

  • Execute a stored procedure.

  • Drop a stored procedure from a data source.

  • View the column headings and data types of a table or a view.

  • View the properties of a data source.

For more information on Data View and related project workspaces, see Overview: Project Workspaces.


The SQL Editor

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

The integrated Text editor in Microsoft Visual C++ Enterprise Edition color codes SQL keywords to help you minimize syntax and spelling errors when editing SQL source files. This color coding, when combined with the ability of Data View to generate skeletal triggers and stored procedures, simplifies the creation of both SQL scripts and SQL procedures.

For more information on SQL editing, see Using the Text Editor.


The SQL Debugger

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Microsoft Visual C++ Enterprise Edition provides an integrated SQL debugger to help locate bugs in SQL language stored procedures. Using the SQL debugger, you can:

  • Display the SQL call stack, local variables, and parameters for the SQL stored procedure.

  • Control and manage breakpoints.

  • View and modify locals and parameters.

  • Use DataTips to easily display the value of a variable.

  • View threads for both the client and the SQL Server.

  • View globals.

  • Debug any stored procedure.

  • Debug both C/C++ code and SQL Server code in the same debug session.

For more information, see Debugging SQL.


MFC Database Classes

MFC supports two different kinds of database access:

  • Access via Data Access Objects (DAO) and the Microsoft Jet database engine.

  • Access via Open Database Connectivity (ODBC) and an ODBC driver.

Both of these supply abstractions that simplify working with databases, complete with the speed, power, and flexibility of C++. Both types of access integrate your data access work with the MFC application framework.

Note You cannot use Data View to work with data sources that you specify using the MFC DAO or the MFC ODBC classes. These are C++ classes and Data View works directly with SQL.

The following topics explain the differences between DAO and ODBC and provide information to help you choose which kind of data access to use:

  • What are DAO and ODBC?

  • What is the MFC database programming model?

  • DAO or ODBC?

  • Calling DAO or ODBC directly

  • Database definition and manipulation

  • More information about the DAO and ODBC classes


AppWizard and Data Sources

You can use AppWizard to build a client and to connect to a data source. The second step of MFC AppWizard (exe) allows you to create an application that uses either an ODBC, DAO, or OLE DB data source. The generated code wraps ODBC syntax in MFC C++ classes. If you choose to use to do this, you can refer to the Databases Samples tutorials to help you with your development process.

The Help system provides information on using MFC to generate applications that use ODBC, DAO, or OLE DB data sources. To get started, simply pull down the Help menu, choose the Search command, and type in "ODBC" or "DAO."

Warning You cannot use Data View to work with data sources that you specify in AppWizard. Data View works directly with SQL. You can use Data View if you use AppWizard to generate a project and then use the Add Data Source command from the Insert menu to connect to a data source.

AppWizard, OLE, ActiveX, and COM

You can use AppWizard to add MFC-based versions of OLE or ActiveX technologies to your project. You can specify that your application be an OLE server, an OLE container, or both. You can also specify that your application support OLE activation and/or ActiveX controls.

In addition, AppWizard can generate an .exe or a .dll project from which you can create a COM object using an MFC CCmdTarget class. Read TN038: MFC/OLE IUnknown Implementation and Tom’s Handy Dandy MFC/COM/MIDL Recipe Book for Creating Custom Interfaces in the Microsoft Developer Network Library (MSDN).

Use the ATL COM AppWizardto create a Visual C++ ATL project from which you can create an ActiveX control. For more information on the ATL COM Wizard, see Active Template Library (ATL) Reference.


Remote Automation Components

Remote Automation allows you to connect to a local or a remote data source, use a client application to display and/or edit the associated data, and commit any local changes back to the original data source. Remote Automation was developed for Microsoft Visual Basic 4.0 Enterprise Edition by augmenting the OLE Automation parts of OLE and COM. It is compatible with, and can be replaced by, distributed COM, which currently ships with Microsoft Windows NT 4.0 and will ship with Windows 95.

Please be aware that Remote Automation is wholly subsumed by distributed COM (DCOM); if you have the opportunity to use DCOM instead of Remote Automation in your applications, do so. Nevertheless, there are scenarios where Remote Automation is currently more appropriate:

  • Wherever you use 16-bit clients.

  • If your organization has not yet produced a distributed COM-enabled version of your application for Windows NT or Windows 95.

  • If you are upgrading an existing application suite that uses Remote Automation to use C++ components in place of one or more Visual Basic components.

There need be no difference between programs created to use Remote Automation and those created to use distributed COM. The configuration utilities listed below make it very simple to switch operations between Remote Automation and distributed COM. Consequently, it is not difficult to upgrade an application from Remote Automation to distributed COM once the operating-system support is in place.

The configuration utilities listed in the following table and the supporting Visual Basic components in the bulleted list below are automatically installed with Visual C++ Enterprise Edition.

Remote Automation Configuration Tools

Application name | File name
Remote Automation Manager | AUTMGR32.EXE
Remote Automation Proxy | AUTPRX32.DLL
Remote Automation Connection Manager | RACMGR32.EXE
Remote Automation Connection Registry Server | RACREG32.DLL

Remote Automation requires the following Visual Basic components. These files are installed by Visual C++ Setup. The version number of these files is the same or greater than those that shipped with Microsoft Visual Basic 6.0 Enterprise Edition:

  • COMCTL32.OCX

  • VB40032.DLL

  • VEN2232.OLB

  • ODKOB32.DLL

  • MFC40.DLL

  • MSVCRT20.DLL

  • MSVCRT40.DLL

  • OLEPRO32.DLL

  • CTL3D32.DLL

For more information, see Remote Automation.


MFC Data Binding

In Visual C++ version 6.0, MFC provides a means to bind simple and complex data controls to any ActiveX data control, including the RemoteData control. The CWnd member functions GetDSCCursor, BindDefaultProperty, BindProperty, and OnDSCNotify provide this functionality.


Visual SourceSafe

Feature Only in Enterprise Edition This feature is supported only in Visual C++ Enterprise Edition. For more information, see Visual C++ Editions.

Microsoft Visual SourceSafe is a version control system for team development of software applications. Version control systems track and store changes to a file so developers can review a file's history, return to earlier versions of a file, and develop programs concurrently. Microsoft Visual SourceSafe does this using reverse delta technology and stores only the changes to a file, not each complete version of the file itself. Unlike other version control systems, Visual SourceSafe is project-oriented.


Remote Automation

You can install the necessary remote automation components and then create and run distributed OLE Automation programs. A discussion of remote automation, the Distributed Component Object Model (DCOM), and how programs can invoke IDispatch implementations on one machine from another is provided in the topic Remote Automation.


Getting Started with Visual C++ 6.0

Beginning Your Program You have designed your program. Now it's time to create your Visual C++ project with its initial files and project settings. After that, you can begin adding user-interface features, adding code to implement your program's functionality, and debugging as you go.
Porting and Upgrading Once you have a working application, you can port it to C++, to a different platform, or to another operating system. You can also upgrade a project built in a previous version of Visual C++ to the latest version. These topics describe porting and upgrading procedures and details about code changes and added features in the latest version.
Visual C++ Tutorials Visual C++ provides eight tutorials to help you begin learning new areas of the development system. Each tutorial is broken into steps, and complete code is supplied for each step. You can work through the tutorials step by step or simply build the code for a given step to see the results.
What's New for Visual C++ 6.0
Getting Help

Interesting home pages
Visual C++ Home Page The entire Visual C++ product.


If You Want to Comment on the Documentation

Please use one of the following addresses to send us e-mail. Be sure to include your name and the version number of Visual C++ you are using.

E-mail address | Use for reporting
vcdocs@microsoft.com | Comments on or bugs in the Visual C++ documentation. This includes the documentation under the node "Visual C++ Documentation" in the Contents window for the MSDN Library Visual Studio 6.0.
msvc@microsoft.com | Visual C++ product suggestions. The auto reply from this alias includes instructions for reporting bugs against Visual C++.
sdkfdbk@microsoft.com | Comments on or bugs in the Platform SDK documentation. This includes the documentation under the node "Platform SDK" in the Contents window for the MSDN Library Visual Studio 6.0.

Note Sorry, we cannot answer technical support questions. If you need technical support, the Microsoft Support Network provides a variety of services. For more information, see Getting Help from Microsoft Technical Support in Visual Studio Documentation.

Thank you for your time!

The Visual C++ documentation team


Topic Not Found

No matching topic was found. Some possible reasons and remedies are as follows:

  • The file (.chm) that contains the destination topic is not in the expected location.

    • Remedy: Rerun the MSDN Library Setup.

  • The file (.chm) that contains the current topic or destination topic is out-of-date and the link is no longer valid.

    • Remedy: Install the latest version of the MSDN Library.

  • The MSDN Library CD is not in the CD-ROM drive.

    • Remedy: Insert the MSDN Library CD into the CD-ROM drive.


Topic Not Found

No matching topic was found. Some possible reasons and remedies are as follows:

  • The file (.chm) that contains the destination topic is not in the expected location.

    Remedy: Rerun the MSDN Library Setup.

  • The file (.chm) that contains the current topic or destination topic is out-of-date and the link is no longer valid.

    Remedy: Install the latest version of the MSDN Library.

  • The MSDN Library CD is not in the CD-ROM drive.

    Remedy: Insert the MSDN Library CD into the CD-ROM drive.