DOCUMENT:Q113063 22-JUL-2001 [visualc] TITLE :FIX: Visual C++ Setup Messages for File Copying Errors PRODUCT :Microsoft C Compiler PROD/VER:1.00 1.50 | 1.00 OPER/SYS: KEYWORDS:kbsetup ====================================================================== ------------------------------------------------------------------------------- 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 2001.