Microsoft Visual Studio 2008 was released late last year.
According to http://msdn2.microsoft.com/en-us/library/bb531344.aspx, Windows 9x is no longer a supported target platform:
The Windows 95, Windows 98, Windows ME, and Windows NT platforms are no longer supported. These operating systems have been removed from the list of targeted platforms.
The typical message upon running a VS2008 compiled application that uses 0x0500 in the WINVER macro is:
(For more information on WINVER macro see: http://msdn2.microsoft.com/en-us/library/aa383745.aspx)
Error Starting Program
The [full path of executable] file
expects a newer version of Windows.
Upgrade your Windows version.
Following this is:
[full path of executable]
A device attached to the system is not functioning.
This second information box would appear without the first if WINVER macro was still 0x0400 in a re-compiled source.
Either way, it no gonna run...
One person has determined that the Win32 API call GetSystemWindowsDirectoryW in KERNEL32.DLL was being referred to even with a simple application. See http://forums.microsoft.com/MSDN/ShowPost....93&SiteID=1
Maybe this is where a KernelEx solution could be useful.
This spells the end of new software for Windows 9x since most software developer for the Windows platform code in Microsoft C++ under Microsoft Visual Studio.
Windows APIs are taylored for C++ calling conventions and data types.
I personally code entirely using Microsoft Macro Assembler (MASM) which supports high level syntax and C++ conventions.
Contrary to popular belief, MASM is not just for writing modules to plug into C++.
It can be used to write an entire PE EXE, DLL, and so on. See here for more information: http://www.masm32.com
MASM version 8.00 that comes with Visual Studio 2005 still supports Windows 9x.
Has anyone looked into this problem?
