FIX: "Cannot Open SYSTEM.INI ... Test for MMD.386" Error

Last reviewed: September 16, 1997
Article ID: Q98496
1.00 WINDOWS kbtool kbfixlist kbbuglist

The information in this article applies to:

  • The Visual Workbench included with: Microsoft Visual C++ for Windows, version 1.0

SYMPTOMS

An attempt to use the Microsoft Visual Workbench fails and Visual Workbench generates the following message:

   Cannot open the SYSTEM.INI file to test for the presence of the
   MMD.386 driver. Subsequent builds may fail.

When you choose OK to close the message box, Visual Workbench generates the following message:

   Microsoft Visual C++ cannot be initialized.

NOTE: With the Standard Edition, you only get the second message.

CAUSE

The system has Microsoft Windows installed in the root directory of a drive.

RESOLUTION

If Windows is physically installed in the root directory, move the installation to a subdirectory. Reinstall Windows or manually move Windows files to the new location. If you move the files manually, you must update the AUTOEXEC.BAT, CONFIG.SYS, and various .INI files to reflect the new location.

If you use the MS-DOS SUBST command to map a drive letter to the Windows directory, disable the mapping and specify the fully-qualified path in the MS-DOS PATH environment variable. Enter the following command at the MS-DOS command prompt to delete a drive substitution:

   SUBST <drive_letter>: /d

Specify the drive letter mapping to delete in the <drive_letter> parameter.

If you use the Novell NetWare drive mapping facility to map the Windows directory as the root directory of a drive, use the Novell MAP command to delete the current mapping and create a new mapping to a directory other than the root. For more information on using the Novell MAP command, see the text below.

STATUS

Microsoft has confirmed this to be a problem in the Visual Workbench version 1.0 for Windows. This problem was corrected in the Visual Workbench version 1.5 for Windows.

MORE INFORMATION

Visual Workbench cannot locate the SYSTEM.INI file when Windows is installed in the root directory of a drive. The problem also occurs when the MS-DOS SUBST command maps the Windows directory to the root directory of a drive or when the Novell NetWare drive mapping mechanism maps the Windows directory on a file server to the root directory of a drive.

Novell NetWare supports mapping drive letters to directories in the file system. NetWare supports up to 26 drive mappings, assigned to the letters A through Z. You can use up to 16 of the possible drive mappings for a special type of mapping known as a search drive map.

Search drive mappings are similar to the MS-DOS PATH environment variable. When the user enters a command, NetWare searches the current directory for the command to execute. If the command is not available, NetWare searches the directories that are specified as search drives in ascending order. In other words, search drive 1 is searched first, followed by search drive 2, and so on.

With the NetWare MAP utility, you can add, delete, and list current drive mappings. For example, if you enter the command "MAP" at the MS-DOS command prompt, the drive mapping utility displays something like the following:

   Drive  A:   maps to a local disk
   Drive  B:   maps to a local disk
   Drive  C:   maps to a local disk
   Drive  D:   maps to a local disk
   Drive  E:   maps to a local disk
   Drive  F: = SERVER_NAME\SYS:  \USER\USER_NAME
         -----
   SEARCH1:  = C:\DOS
   SEARCH2:  = Z:. [SERVER_NAME\SYS:  \PUBLIC]
   SEARCH3:  = Y:. [SERVER_NAME\SYS:  \MSVC\BIN]
   SEARCH4:  = X:. [SERVER_NAME\SYS:WINDOWS  \]

The MAP utility provides a method to map a directory to a drive letter and have that directory treated as the root directory for the drive letter. MAP uses different methods to display drives that are mapped as root directories and drives that are not mapped as root directories. For example, in the MAP output above, the SEARCH4 mapping is a root mapping; the other mappings are not root mappings. The backslash (\) character at the end of the line indicates that SEARCH4 is a root mapping.

   SEARCH4:  = X:. [SERVER_NAME\SYS:WINDOWS  \]
                                             ^------ denotes a root
                                                         mapping

Visual Workbench fails when it attempts to open the SYSTEM.INI file on a drive that has a root mapping.

The MAP command can delete search drive mappings. For example, to delete the SEARCH4 mapping above, enter the following at the MS-DOS command prompt:

   MAP DEL SEARCH4:

To define a new, non-root drive mapping for the Windows directory, enter the following at the MS-DOS command prompt:

   MAP SEARCH4:=SYS:\WINDOWS

The "SYS:" portion of the command specifies the name of the Novell volume on which the Windows directory is installed. Volumes are similar to MS-DOS disk partitions (C:, D:, and so on). After you enter the two MAP commands above, the sample MAP output is as follows:

   SEARCH1:  = C:\DOS
   SEARCH2:  = Z:. [SERVER_NAME\SYS:  \PUBLIC]
   SEARCH3:  = Y:. [SERVER_NAME\SYS:  \MSVC\BIN]
   SEARCH4:  = X:. [SERVER_NAME\SYS:  \WINDOWS]

If you need to have the Windows directory mapped as a root directory (for use by some other program, for example), you can create a non- search drive mapping and manually add it to the path. Non-search drive mappings are drive mappings that are not searched by default when NetWare attempts to locate a program to run. Non-search drive mappings are typically used to quickly navigate through the file system. To create a non-search drive mapping, enter the following at the MS-DOS command prompt:

   MAP G:=SYS:\WINDOWS

The drive letter specified in the MAP command cannot conflict with any mapping already in place. After the mapping is available, you can edit the MS-DOS PATH environment variable to specify the new drive letter. To avoid the difficulties that can occur when the Visual Workbench attempts to open the SYSTEM.INI file, the new mapping must appear in the PATH prior to the search drive mapping that maps the Windows directory to the root directory for a drive. For example, using the mapping for drive G and the example MAP output above, the MS-DOS PATH environment variable would be as follows:

   PATH=C:\DOS;G:\WINDOWS;Z:.;Y:.;X:.

For more information on the NetWare MAP utility and mapping drives, please refer to the documentation provided with your Novell NetWare system.


Additional reference words: 1.00
KBCategory: kbtool kbfixlist kbbuglist
KBSubcategory: VWBIss
Keywords : kb16bitonly VwbIss kbbuglist kbfixlist kbtool
Version : 1.00
Platform : 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: September 16, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.