Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Win32s
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|32-bit application runtime environment}} {{Use dmy dates|date=November 2024}} '''Win32s''' is a [[32-bit]] application runtime environment for the [[Microsoft Windows]] [[Windows 3.1x|3.1 and 3.11]] [[operating system]]s. It allowed some 32-bit applications to run on the [[16-bit]] operating system using call [[thunk]]s. A beta version of Win32s was available in October 1992.<ref>{{Cite web|url=https://winworldpc.com/product/win32s/beta|title=Win32s Beta}}</ref> Version 1.10 was released in July 1993<ref>{{Cite web|url=https://winworldpc.com/product/win32s/11|title = Win32s 1.1}}</ref> simultaneously with [[Windows NT 3.1]]. == Concept and characteristics == Win32s was intended as a partial implementation of the [[Windows API|Win32 Windows API]] as it existed in early versions of [[Windows NT]].<ref>{{cite web | title = General Overview of Win32s | publisher = Microsoft Corporation | archive-url = https://web.archive.org/web/20070820172339/http://support.microsoft.com/kb/83520 | archive-date = 20 August 2007 | url-status = dead | date = 12 April 2004 | url = http://support.microsoft.com/kb/83520 | accessdate = 2007-09-05 }}</ref> The "s" in Win32s signifies ''subset'', as Win32s lacked a number of Windows NT functions, including [[thread (computing)|multi-threading]], [[asynchronous I/O]], newer [[serial port]] functions and many [[Graphics Device Interface|GDI]] extensions. This generally limited it to "Win32s applications" which were specifically designed for the Win32s platform,<ref>{{cite web | title = General limitations under Win32s | publisher = Microsoft Corporation | date = 22 November 2005 | url = http://support.microsoft.com/kb/q131896/ | accessdate = 2007-09-05 }}</ref> although some standard Win32 programs would work correctly, including Microsoft's ''[[Full Tilt! Pinball#Space Cadet|3D Pinball Space Cadet]]'' and some of Windows 95's included applets.<ref name="Win32s List"/> Early versions of Internet Explorer (up to Version 5) were also Win32s compatible, although these also existed in 16-bit format.<ref name="Win32s List">{{cite web|url=http://stephan.win31.de/w32slist.htm|title=The Win32s compatibility list|accessdate = 2008-11-30}}</ref> Generally, for a 32-bit application to be compatible with Win32s, it had to not use more than 16MB of memory or any extended features such as [[DirectX]]. Win32s inherits many of the limitations of the Win16 environment. True Win32 applications execute within a private virtual address space, whereas Windows 3.x used an address space shared among all running applications. An application running on Win32s has the shared address space and cooperative multitasking characteristics of Windows 3.1. Consequently, for a Win32 application to run on Win32s, it must contain [[relocation (computing)|relocation information]]. A technique named [[thunk]]ing is fundamental to the implementation of Win32s as well as Chicago-kernel operating systems, which are [[Windows 95]], [[Windows 98]], and [[Windows Me]]. However, allowing user-level thunking greatly complicates attempts to provide stable memory management or memory protection on a system-wide basis, as well as core or kernel security—this allows poorly written applications to undermine system stability on Win32s, as well as the Chicago-kernel systems. 32-bit versions of [[Windows NT]] transparently provide [[NTVDM|a virtual machine]] for running Win16 applications, although [[Windows on Windows|this feature]] was removed from 64-bit versions of Windows. == Compatibility == Win32s-compatible applications could be built using Microsoft's development tools, as well as at least [[Borland C++]] 4.x and Symantec C++ (now [[Digital Mars]] C++). However, several program compilation options (such as EXE relocation information) and DLLs which were implicit in Windows NT 3.1 have to be included with the application in Win32s. Microsoft ceased support for Win32s in [[Visual C++]] version 4.2 released in late 1996. Win32s included an implementation of the card game [[FreeCell]] as an example application, a couple of years before the game became famous with its inclusion in [[Windows 95]]. ''[[Warcraft II: Tides of Darkness]]'', a DOS game, included a level editor that required Win32s to run. The editor used a Windows GUI for displaying the large maps because high-resolution graphic modes were already handled by Windows. The NCSA [[Mosaic (web browser)|Mosaic]] [[web browser]] version 2 also required Win32s.<ref>{{cite book|last1=December|first1=John|year=1994|last2=Randall|first2=Neil|title=World Wide Web Unleashed|publisher=Sams Publishing|isbn=0-672-30617-4}}</ref> [[C Sharp (programming language)|C#]] applications can be compiled by the [[.NET Core|CoreRT]] compiler into Win32 code that is accepted by the 1994 Visual C++ linker. This combination produces Win32 executables that can run on Windows 3.1 with Win32s.<ref>{{cite web |last1=Strehovský |first1=Michal |title=1/7 Did you ever need to run a piece of C# code on Windows 3.11? Me neither, but I did it anyway. |url=https://twitter.com/MStrehovsky/status/1215331352352034818 |website=Twitter |language=en |date=9 January 2020}} [https://news.ycombinator.com/item?id=22010159 Hacker News].</ref> == Sources and installation == Win32s can still be found using web search engines; PW1118.EXE is generally the installation file used. <syntaxhighlight lang="console"> $ sha512sum pw1118.exe 31b532f324a1eebd1073e043e0c81cb131ad40681b1a7e5e73f881369eafa38ba9d91a541d99fd8b96e937f0e93bfd17cf9c26cc77daf8c77d7c9df803b3aef9 </syntaxhighlight> Developers should ensure they are installing [[Object Linking and Embedding|OLE]] if they require consistent clipboard handling. Many applications which need to be made OLE aware (i.e. setting up their OLE server) must be reinstalled. Win32s was also included with some early Win32 programs. == References == {{Reflist}} == External links == *[https://web.archive.org/web/20040627001512/http://www.gajits.com/win32.asp Win32 Tutorial by Graeme Chandler] *[http://www.i24.com/en/win32s/tips/w32slist.htm Win32s Compatibility List] *[ftp://ftp.microsoft.com/softlib/MSLFILES/PW1118.EXE Download Win32s from Microsoft]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}} *[https://ftpmirror.your.org/pub/misc/ftp.microsoft.com/Softlib/MSLFILES/PW1118.EXE Download Win32s from mirror] *[http://www.classicdosgames.com/utilities/win9x.html Archive of almost every version of Win32s] *Andreas C. Hofmann: [https://eindruecke.achmnt.eu/2019/11/10762/ Win32 subset / Win32s (1993 to 1995)], in: Computing History Dictionary (german) [⁴11.10.2021]. [[Category:Microsoft application programming interfaces]] [[Category:Compatibility layers]] [[de:Windows Application Programming Interface#Win32s]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cbignore
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Dead link
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)