RetroOS

Visual Studio 2008 and Windows 9x

35 posts in this topic

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?

0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites
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.

0

Share this post


Link to post
Share on other sites
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!

0

Share this post


Link to post
Share on other sites

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!

0

Share this post


Link to post
Share on other sites
Has anyone looked into this problem?
Can anyone post source + output of some short program generated by VS2008 that is not working on 9x?
0

Share this post


Link to post
Share on other sites

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).

0

Share this post


Link to post
Share on other sites

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!

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites

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

0

Share this post


Link to post
Share on other sites
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
0

Share this post


Link to post
Share on other sites

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
0

Share this post


Link to post
Share on other sites

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.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.