Eraser 5.5+ wont install on Windows 95/NT4.0

msbaker

New Member
The new version of Eraser that you are maintaining no longer installs on Windows 95. The install probably likely also fails on Windows NT 4.0. Eraser v5.30 installs and runs fine on Windows 95 (and presumably Windows NT 4.0 as well)

The problem is that when you compiled the installer (and the Eraser programs) using VS.NET, you didnt set the Windows Subsystem version for the executables to 4.0. By default, VS.NET will set this to 4.1 so that executables produced by VS.NET will still run on Windows 98 and Windows 2000. Visual Studio 6.0 defaults this linker setting to 4.0 so by default the executables would run on Windows 95 and Windows NT 4.0.

In the VS.NET vcproj files for the Eraser install and executable programs under the VCLinkerTool section you need to add
/SUBSYSTEM:WINDOW,4.0

A sample is shown below.
<Tool
Name=VCLInkerTool
Additional Options="/SUBSYSTEM:WINDOWS,4.0"

This change can be made using Notepad to edit the vcproj files. This cahnge can also be set using the VS.NET IDE under the
Configuration Properties->Linker-Commandline
by adding the following text under
Additional Options:
/SUBSYSTEM:WINDOWS,4.0
You might already have something like:
/RELEASE
under Additional Options, so you need to change this to:
/RELEASE /SUBSYSTEM:WINDOWS,4.0

This assumes that you are building all Windows GUI applications as part of the Eraser release. For Windows console applications, the required statement would be:
/SUBSYSTEM:CONSOLE,4.0

The effect of this command is to indicate the minimum Windows version needed to run your application. Windows 95 and Windows NT 4.0 can execute Windows Subsystem 4.0 executables. Windows 98 and Windows 2000 support Windows Subsystem 4.1 executables. Windows XP supports Windows 5.0 Subsystem executables. The Itanium supports Windows Subsystem 5.01 executables.

It is unlikely that you are using any coding features in the installer that are not supported by Windows 95 or Windows NT 4.0. So the only change needed is the above directive to the linker.

You can get information on this subject by searching under Help in the VS.NET for the following text:
/Subsystem (Specify Subsystem)
The help file explains the concept, but doesnt provide a table of which /Subsystems are supported by which Windows OS releases. This is apparently left up to the reader.

Regards,
-Steve
msbaker@cs.uoregon.edu
 
Back
Top