How Windows 95 Accommodates Application Problems

Some Windows-based and MS-DOS - based applications may not run well under Windows 95 because they were written to take advantage of characteristics of older operating systems. For example, certain applications use a portion of the title bar to include items other than the title, such as a Quick Help button. Because Windows 95 title bars are not formatted in the same way as Windows 3.x title bars, some information may be overwritten when you run these old applications.

In addition, some applications use interrupts that are not automatically supported by Windows 95. Others do not handle long filenames well, or incorrectly check for the operating system's version number.

Windows 95 provides a utility to make an application that is incompatible with Windows 95 compatible. You can use this utility to troubleshoot if you have trouble printing from an application or an application stalls or has other performance problems. It provides a means to switch from EMF to RAW printer data, to increase stack memory to an application, to emulate earlier versions of Windows, and to solve other common problems that cause an application not to run with Windows 95. For more information, see online Help.

To run the Make Compatible utility

Notes

Many programming tools that are not specifically designed to run under Windows 95 may run satisfactorily, but the corresponding debugging tools usually do not. Make sure that both the programming and debugging tools you use are designed for Windows 95.

Some Win16-based and MS-DOS – based disk utilities must be run with special care. In addition, some disk utilities do not perform correctly with long filenames. For more information about using Win16-based and MS-DOS – based disk utilities with Windows 95, see Chapter 20, "Disks and File Systems."

Running TSRs

Some older TSRs rely on MS-DOS interrupts to monitor everything that happens on the system. However, because of its protected-mode file system, Windows 95 doesn't use MS-DOS interrupts. If Windows 95 detects that a TSR is trying to monitor these interrupts, it will accommodate the application and will send all system information through MS-DOS interrupts. This way, the TSR can monitor system events successfully. However, doing this will slow the performance of the operating system significantly.

The IOS.INI file, as described in Chapter 19, "Devices," includes a list of "safe" drivers and applications. If Windows 95 finds the application listed in IOS.INI, it will not send system events through MS-DOS interrupts, thus avoiding slowed performance.

Fixing Version-Checking Errors

If you are using an MS-DOS – based application that was designed for an MS-DOS version other than 7.0 (which is the version that Windows 95 reports), you may receive a message that says you are not using the correct version of MS-DOS. If this is the case, you can add the application to the version table. The version table contains a list of executable files followed by the version number of MS-DOS that the applications were designed to run with.

To display the version table, type setver in a command prompt window. For information about the syntax, parameters, and switches you can use to add an application to the version table, type setver /? at the command prompt.

Windows 95 cannot report the correct MS-DOS version to applications unless the version table is loaded into memory. To load the version table, include a device command in CONFIG.SYS; for example:


device=c:\windows\setver.exe 

If you modify the version table or CONFIG.SYS, restart the computer so the changes can take effect.

Some applications incorrectly check the version number of Windows 95. Incorrect version-checking techniques sometimes invert the two bytes that record the version number; thus, version 3.10 would be reported as 10.3. Windows 95 tries to accommodate this possible version-checking error by reporting 3.95 as the version. This way, if an application looks for a version greater than 3.10 or its inverse, 10.3, the new Windows 95 version will prove to be greater.

If the application looks for an exact match for the version number, such as Windows version 3.10, it may not run under Windows 95. To resolve this problem, add the following line to the [Compatibility] section of the WIN.INI file:


compiled_module_name=0x00200000

To determine the compiled module name, right-click an executable file in Windows Explorer, and then click Quick View. The Module Name line provides this information. After you have obtained the module name, the section you add to the WIN.INI file should look similar to this entry for cc:Mail™:


[Compatibility]
CCMAIL=0x00200000

Windows 95 Setup adds entries to the WIN.INI file for many applications that are known to have this problem.

Note

Do not add a permanent entry to WIN.INI for an installation application. Install your application first, and then edit the compiled module name in WIN.INI.

If a setup application incorrectly detects the version of Windows 95, you may be unable to install the application. In this case, add an entry to the [Compatibility] section of WIN.INI for the setup application (for example, SETUP=0x00200000). Install the application, and then immediately remove the section that you added to WIN.INI.

Running Applications That Replace System DLLs

Some setup applications do not check the version of the system files they are installing and overwrite the newer Windows 95 versions of those DLLs. Windows 95 restores its original DLLs after every setup application runs and for the first three startups thereafter. If an application stops running or behaves erratically after you install it, you may need to obtain an updated version of the application that does not overwrite Windows 95 system files.

Earlier versions of Windows allowed applications to redistribute parts of the system with no ill effects. For example, an application might overwrite a system file with no adverse consequences.

In Windows 95, multiple system files have been consolidated to expedite the startup process. If an application tries to overwrite a system file that is no longer used, Windows allows the application to copy the file, but does not use it.

If your application must run with a replacement file, you can add that file to the Windows SYSTEM\VMM32 directory (which is initially empty after you set up Windows 95).

After you install an application, Windows 95 checks for files that are commonly overwritten by setup applications. If any are found, a dialog box appears, enabling you to restore the files from the hidden Windows SYSBCKUP directory.