Skip to content
View in the app

A better way to browse. Learn more.

MSFN

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Visual Studio 2008 and Windows 9x

Featured Replies

Microsoft Visual Studio 2008 was released late last year.

According to https://learn.microsoft.com/cpp/porting/visual-cpp-change-history-2003-2015?view=msvc-170, 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: https://learn.microsoft.com/windows/win32/winprog/using-the-windows-headers)

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 https://web.archive.org/web/20110127080226/https://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/750c1fbf-082e-4b00-9194-f1a40e8a3bb3/

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: https://www.masm32.com/

MASM version 8.00 that comes with Visual Studio 2005 still supports Windows 9x.

Has anyone looked into this problem?

Edited by RetroOS
Fix broken links

Visual Studio 2005 was already the end for targeting Windows 95, actually. Compiled programs would look for an unsupported API because of the runtime. You could recompile it to not do this, though.

  • Author
Visual Studio 2005 was already the end for targeting Windows 95, actually. Compiled programs would look for an unsupported API because of the runtime. You could recompile it to not do this, though.

I had heard that.

The problem with VS2008 is that you cannot just change compile options to get it working...

It simply will not work in Windows 9x.

It would be good to get some heads together over this one with the purpose of finding some kind of workaround for VS2008 compiled software.

As mentioned previously, maybe some concept like the way KernelEx operates by expanding the Windows 9x API set.

Even if those API functions are 'simulated' with close 9x functions or simply returning a successful status if applicable.

The problem with VS2008 is that you cannot just change compile options to get it working...

Neither could you with Visual Studio 2005. You had to recompile the actual C++ runtime!

  • Author

Maybe then, this topic should be called Visual Studio 2008 and Visual Studio 2005 and Windows 9x...

In that case, KernelEx may already solve some VS2005 problems...

If I had time, I would do some work with the KernelEx source...

Time, time, time, never enough!

Has anyone looked into this problem?
Can anyone post source + output of some short program generated by VS2008 that is not working on 9x?
  • Author

Hey Xeno86,

It's great to see you around!

See Offler's topic here: https://msfn.org/board/index.php?showtopic=112725

He has identified three post-9x API calls being made to KERNEL32.DLL from VS2008 library DLLs.

Also there is Windows version checking happening.

Edited by RetroOS
Fix broken link

  • 1 month later...

I ran into a similar problem. See my post at VS 2008 and NT 4.0 (if the link doesn't work, search Google groups for "VS 2008 and NT 4.0").

I'm not sure if that helps you, but it worked for me. Not an elegant solution, but it does the trick (since that post, I do a post build step and modify the exe directly).

So, then, you've found another example of a downversion patch that works, this time on a PE file...

Awesome, jerichar99! :thumbup

And welcome to Win 9x/ME forum!

Hello!

I ran into a similar problem. See my post at VS 2008 and NT 4.0 (if the link doesn't work, search Google groups for "VS 2008 and NT 4.0").

I'm not sure if that helps you, but it worked for me. Not an elegant solution, but it does the trick (since that post, I do a post build step and modify the exe directly).

Thanks for great info. BTW, here is shorter link:

http://groups.google.com/group/Visual-Studio-NET-2005/browse_thread/thread/4fa74dafe3eb6ef5/

Regards, Roman

Would be nice if someone could make a patcher to "fix" files compiled in vc2008 to work on win98.

Hello!
I ran into a similar problem. See my post at VS 2008 and NT 4.0 (if the link doesn't work, search Google groups for "VS 2008 and NT 4.0").

I'm not sure if that helps you, but it worked for me. Not an elegant solution, but it does the trick (since that post, I do a post build step and modify the exe directly).

Thanks for great info. BTW, here is shorter link:

http://groups.google.com/group/Visual-Studio-NET-2005/browse_thread/thread/4fa74dafe3eb6ef5/

Regards, Roman

BTW, you can correct the checksum by using PEChksum, a small command-line app found as part of the freeware PESuite (info) (download link). HTH

Edited by dencorso

  • 3 weeks later...

i have to learn C++ for my next job so i tried to install VS C++ 2005 and 2008. no installation was sucessful but...

KEX 0.3.3e applied to passthought the "requires newer version of windows"

vcsetup.exe of v2008 extracted with winrar.

Setup.exe missing exports:

kernel32.dll > HeapSetInformation

shell32.dll > SHCreateDirectoryExW

ole32.dll > CoWaitForMultipleHandlers

apphelp.dll > file missing (i try to add it manually)

userenv.dll > ExpandEnvironmentStringForUserW

Shell32.dll > SHBindToParent

advapi32.dll > InitiateSystemShutdownExW

secur32.dll > GetComputerObjectNameW

i believe that packages created directly by MS will be good source of information for us when it comes to identification of problem with exports.

Edited by Offler

thx. i will try it :) but i just wanted to post some missing exports from visual studio installer. M$ has all the dlls bound together so they are using them more as other programs.

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.