RetroOS Posted February 8, 2008 Posted February 8, 2008 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 ProgramThe [full path of executable] fileexpects 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=1Maybe 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.comMASM version 8.00 that comes with Visual Studio 2005 still supports Windows 9x.Has anyone looked into this problem?
BenoitRen Posted February 10, 2008 Posted February 10, 2008 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.
RetroOS Posted February 10, 2008 Author Posted February 10, 2008 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.
BenoitRen Posted February 11, 2008 Posted February 11, 2008 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!
RetroOS Posted February 11, 2008 Author Posted February 11, 2008 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!
Xeno86 Posted February 18, 2008 Posted February 18, 2008 Has anyone looked into this problem?Can anyone post source + output of some short program generated by VS2008 that is not working on 9x?
RetroOS Posted February 19, 2008 Author Posted February 19, 2008 Hey Xeno86,It's great to see you around!See Offler's topic here: http://www.msfn.org/board/Vcredist-x86-t112725.htmlHe has identified three post-9x API calls being made to KERNEL32.DLL from VS2008 library DLLs.Also there is Windows version checking happening.
jerichar99 Posted April 7, 2008 Posted April 7, 2008 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).
dencorso Posted April 8, 2008 Posted April 8, 2008 So, then, you've found another example of a downversion patch that works, this time on a PE file...Awesome, jerichar99! And welcome to Win 9x/ME forum!
modicr Posted April 8, 2008 Posted April 8, 2008 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
aLeXis Posted April 8, 2008 Posted April 8, 2008 Would be nice if someone could make a patcher to "fix" files compiled in vc2008 to work on win98.
dencorso Posted April 9, 2008 Posted April 9, 2008 (edited) 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, RomanBTW, 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 April 28, 2010 by dencorso
Offler Posted April 24, 2008 Posted April 24, 2008 (edited) 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 > HeapSetInformationshell32.dll > SHCreateDirectoryExWole32.dll > CoWaitForMultipleHandlersapphelp.dll > file missing (i try to add it manually)userenv.dll > ExpandEnvironmentStringForUserWShell32.dll > SHBindToParentadvapi32.dll > InitiateSystemShutdownExWsecur32.dll > GetComputerObjectNameWi 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 April 24, 2008 by Offler
Offler Posted April 24, 2008 Posted April 24, 2008 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.
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now