FIX: Visual C++ Setup Messages for File Copying Errors

Last reviewed: October 21, 1997
Article ID: Q113063
1.00 1.50 | 1.00
WINDOWS   | WINDOWS NT
kbsetup kbbuglist kbfixlist

The information in this article applies to:

  • Microsoft Visual C++ for Windows, versions 1.0, 1.5
  • Microsoft Visual C++ 32-bit Edition, version 1.0

SYMPTOMS

Installing Visual C++ may cause the Setup program to display the following in a message box:

   Internal Error

This happens when the Setup program tries to copy files from the Visual C++ CD-ROM to a hard drive, and those files are hidden or read-only.

In later versions of Visual C++ you are more likely to receive a dialog box containing one of the messages below. You should only encounter the

'Internal Error' message if the destination file is corrupted.

For the 32-bit edition of Visual C++ version 2.0 and later:

   Setup cannot open the file C:\msvc20\somefile.exe. The file may be in
   use by another application, or marked read-only. Close the application
   or change the file's read-only attribute and try again.

For the 16-bit version of Visual C++ for Windows, version 1.51 or later:

  Setup cannot open the destination file C:\msvc\somefile.exe.

The dialog boxes have three options, Abort, Retry and Ignore.
  Abort will terminate the setup program.
  Retry will try to copy the file again.
  Ignore will cause the setup program to move on and try to copy the next
   file to the hard disk.

CAUSE

The Visual C++ Setup program copies the majority of files to its own directory (by default, C:\MSVC). It also copies some of the files to the Windows directory and its subdirectories. Any hidden, read-only, or corrupted files with the same names in these directories may cause the Setup program to fail. These files have been installed by the previous installations of the Visual C++ or by other software packages. The Visual C++ Setup program can return the "Internal Error" message when its attempt to overwrite a corrupted, hidden, read-only or share-locked file fails.

RESOLUTION

When the "Internal Error" message occurs, the VC++ Setup program displays a filename associated with its source directory and target directory in the VC++ Setup dialog box. In the case of a hidden or read-only file in the target directory, the Setup program displays the name of the file that causes the problem. To resolve the problem of a hidden or read-only file, follow the procedure below:

  1. Terminate the Setup program.

  2. Open an MS-DOS prompt under Windows.

  3. Change to the directory that was displayed on the target line in the VC++ Setup dialog box.

  4. Examine the attributes of the file that the Visual C++ Setup program failed to install using the ATTRIB command in MS-DOS. For example, to examine the attributes of TEST.DLL, type the following:

          ATTRIB TEST.DLL
    

    Typing ATTRIB without any arguments will give attribute information on all the files in the directory. The output from ATTRIB will resemble the following

          ARH    C:\TEST.DLL
    
       where A stands for "archive", R stands for "read-only", and H represents
       "hidden". Not all attributes will be shown for a given file. Consult
       your MS-DOS documentation for more information on ATTRIB.
    
    

  5. If it is a hidden file, for example, change the hidden attribute on the file, using the ATTRIB command:

          ATTRIB -H TEST.DLL
    

    You may also use File Manager in Windows to change the file attributes by selecting Properties from the File menu after selecting the file in question.

  6. Reinstall Visual C++.

If the file is not a hidden or read-only file, the file may be corrupted. To resolve the problem in this case is more complicated because the Setup program does not display the name of the corrupted file, but the last file the Setup program installed successfully. A possible solution to the problem is discussed in the "MORE INFORMATION" section below.

STATUS

Microsoft has confirmed this to be a bug in the products listed at the beginning of this article. The problem was fixed in Visual C++ for Windows 1.51 and Visual C++ 2.0 32-bit edition.

MORE INFORMATION

Some of the files copied to the Windows subdirectory by the VC++ Setup program are related to OLE (Object Linking and Embedding) 2.0 retail dynamic-link libraries (DLLs) and symbol files. Any system with OLE 2.0 applications installed may already have some of these DLLs installed by the applications. For some reason, one or more of these DLLs may have hidden or read-only attributes, or have been corrupted. The OLE 2.0 files typically cause an "Internal Error" during the installation of Visual C++.

OLE 2.0 retail DLL and symbol files copied by the VC++ Setup program are:

   COMPOBJ.DLL     COMPOBJ.SYM     OLE2DISP.DLL    OLE2NLS.DLL
   OLE2NLS.SYM     OLE2.DLL        OLE2.SYM        OLE2PROX.SYM
   OLE2CONV.DLL    OLE2CONV.SYM    OLE2PROX.DLL
   CTL3DV2.DLL     TYPELIB.DLL     TYPELIB.SYM
   CTL3D.DLL       STORAGE.DLL     OLE2DISP.SYM

These files are copied from \MSVC\NODEBUG on the Visual C++ CD-ROM into the \WINDOWS\SYSTEM directory if the option of installing OLE 2.0 retail DLLs is selected. The option of installing OLE 2.0 retail DLLs is automatically selected if a user selects the "Typical Installation" option during setup. This option can also be enabled by selecting the "Custom Installation" and having the "MFC OLE" check box selected. Notice that selecting the "MFC OLE" check box in the "Custom Installation" dialog box will not stop the Setup program from installing OLE 2.0 retail DLLs. The "OLE SDK" button, located next to the "MFC OLE" check box, needs to be chosen to enable or disable this option.

In the case of a corrupted file in the \WINDOWS\SYSTEM directory, deleting all the files listed above and then reinstalling Visual C++ should resolve the problem in most cases. If not, please contact Microsoft Product Support Services at (425) 635-7007.

It is also possible that some of the files from the previous installation of the VC++ may be corrupted for some reason. The following files are copied to the Windows directory by the VC++ Setup program. Delete them to reinstall Visual C++ if necessary.

\WINDOWS\SYSTEM Directory

   FTENGINE.DLL     FTUI.DLL           MVAPI.DLL
   CIRC2.VBX        GRID.VBX           VC.LIC
   CCAPI100.DLL     CUECARD2.DLL       QRYINTL.DLL
   WINRFS.DLL       TECHNOTE.DLL       STDOLE.TLB
   MFC250.DLL       MFC250D.DLL        MFCD250.DLL
   MFCD250D.DLL     MFCO250.DLL        MFCO250D.DLL
   MFCOLEUI.DLL

\WINDOWS Directory

   CCARD100.EXE

\WINDOWS\MSAPPS\MSQUERY Directory

   MSQUERY.CUE       MSQUERY.EXE       MSQUERY.HLP


Additional reference words: 1.00 1.50
KBCategory: kbsetup kbbuglist kbfixlist
KBSubcategory: vc10setup vc15setup vc20setup
Keywords : vc10setup vc15setup vc20setup kbbuglist kbfixlist kbsetup
Version : 1.00 1.50 | 1.00
Platform : NT WINDOWS
Solution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: October 21, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.