KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

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

Article: Q113063
Product(s): Microsoft C Compiler
Version(s): 1.00 1.50 | 1.00
Operating System(s): 
Keyword(s): kbsetup
Last Modified: 22-JUL-2001

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual C++, versions 1.0, 1.5 
-------------------------------------------------------------------------------

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 query words: 1.00 1.50

======================================================================
Keywords          : kbsetup 
Technology        : kbVCsearch kbAudDeveloper kbvc150 kbvc100
Version           : 1.00 1.50 | 1.00
Issue type        : kbbug
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.

Copyright Microsoft Corporation 1986-2002.