February 8, 200818 yr 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 August 15, 20251 yr by RetroOS Fix broken links
February 10, 200818 yr 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.
February 10, 200818 yr 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.
February 11, 200818 yr 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!
February 11, 200818 yr 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!
February 18, 200818 yr Has anyone looked into this problem?Can anyone post source + output of some short program generated by VS2008 that is not working on 9x?
February 19, 200818 yr 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 August 15, 20251 yr by RetroOS Fix broken link
April 7, 200818 yr 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).
April 8, 200818 yr 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!
April 8, 200818 yr 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
April 8, 200818 yr Would be nice if someone could make a patcher to "fix" files compiled in vc2008 to work on win98.
April 9, 200818 yr 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, 201016 yr by dencorso
April 24, 200818 yr 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, 200818 yr by Offler
April 24, 200818 yr 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