Upgrade Previous 32-Bit Versions of Visual C++

OverviewHow Do IFAQDetails

Projects built in previous 32-bit versions of Visual C++ can be opened and saved in Visual C++ projects automatically.

However, if you have built a 32-bit Visual C++ project from the command line with your own makefile, the Visual C++ development environment does not recognize project data in your file. Instead, the development environment offers to wrap your makefile. If you choose this option, a project is created with one file in it, your makefile, but the project will still build and run within the development environment. See port a project made with NMAKE to the development environment or port a project made without NMAKE to the development environment for step-by-step instructions. To take advantage of wizards and integrated debugging features, it would be better for you to create a new project in the development environment, add your existing files to it, then build and save it as an up-to-date project.

To convert projects built in previous versions of the Visual C++ development environment

  1. From the File menu, click Open Workspace.

    The Open Project Workspace dialog box appears.

  2. In the Files of Type drop-down list, select All Files (*.*) to display all files.

  3. Select the drive and directory containing the previous makefile or project file.

  4. Select the makefile or project file from the list and click Open.

    A message box appears asking if you want to convert to the new project format.

  5. Click Yes.

    A new project workspace file (.DSW) and a new project options file (.OPT) are created with your old project workspace name.  In addition a project build file (.DSP) will be created in each project directory for each project in the workspace.  For the example of a single-project workspace called MYAPP.MDP, then MYAPP.DSW, MYAPP.DSP, and MYAPP.OPT are created and saved to the same directory.  In the more complicated example of a two project workspace called MYAPP2.MDP, which also includes a subproject MYDLL2, then MYAPP2.DSW, MYAPP2.DSP, and MYAPP2.OPT are created and saved to the same directory and MYDLL2.DSP is created in the MYDLL2 directory.

    After the new files are written, the new project workspace opens in the development environment.

  6. To recompile and link your application, click Build or Rebuild All from the Build menu.

You may want or need to modify the new project:

Coexisting with Previous Versions of Visual C++

Installing Visual C++ 6.0 overwrites library DLLs and PDBs used by previous Visual C++ versions (4.2 and 5.0). Visual C++ 4.2 and 5.0 cannot read the new-format debugging information in these DLLs. If you need to use Visual C++ 6.0 and Visual C++ 4.2/5.0, you can:

  • Run Visual C++ 6.0 and the older version on separate machines.

  • Run Visual C++ 6.0 and the older version on separate installations of the operating system on the same machine.

  • Use the Visual C++ 6.0 debugger for debugging in the new DLLs.

  • Copy the old versions of the affected files into your Visual C++ 5.0 or 4.2 project Debug directory. (Do this before you install Visual C++ 6.0 or get the old versions from the \MSDEV\DEBUG directory of the Visual C++ 4.2 or 5.0 CD.)

None of these workarounds allow you to debug release builds with the 4.2 or 5.0 debugger.

The affected CRT files are:

  • MSVCRTd.dll

  • MSVCRTd.pdb

  • MSVCIRTd.dll

  • MSVCIRTd.pdb

The affected MFC files are:

  • MFC42d.dll

  • MFC42d.pdb

  • MFC42u.pdb

  • MFC42ud.dll

  • MFC42ud.pdb

  • MFCd42d.dll

  • MFCd42d.pdb

  • MFCd42ud.dll

  • MFCd42ud.pdb

  • MFCn42d.dll

  • MFCn42d.pdb

  • MFCn42ud.dll

  • MFCn42ud.pdb

  • MFCo42d.dll

  • MFCo42d.pdb

  • MFCo42ud.dll

  • MFCo42ud.pdb

Do not replace the new versions of MFC42.dll, MFC42u.dll, and MSVCRT.dll with the older versions. If you do, you may break other applications dependent on the new versions of these DLLs. The Visual C++ 6.0 development environment, for example, requires the current version of MFC42.dll.

If you need to use Visual C++ 6.0 to generate import libraries in Visual C++ 5.0 format, you can use the /LINK50COMPAT option.