Win32s

Win32sとは、マイクロソフトが開発及び配布した、32ビット版Windows用APIである「Win32」のうち、Windows 3.1で使用されるAPIである「Win16」と共用できるものを抜き出してサブセットとしたものである。32ビットCPUが要求され、Windows 3.1未満では使用できない。

これを用いることにより、一部のWin32対応アプリケーションをWindows 3.1でも動作させることが可能となる。ただし動くのはWindows 3.1の制約を意識して作られたプログラム（おおむねWindows 3.1が主流の頃に作られたもの）にほぼ限られ、Windows 95の登場以降はWindows 3.1でそのまま動く32ビットアプリケーションは次第に見られなくなっていった。

 概要 
Windows 3.1ではもともと16ビットのAPIが使われていたが、やがて登場したWindows NTで32ビットのAPIが備えられ、「Win32」と呼ばれた。これを受け、従来の16ビットAPIは「Win16」と呼ばれるようになった。

その後Windows 3.1から32ビットアプリケーションが中心となるWindows 95へのバージョンアップが迫る中で、ソフトウェアベンダーが大きな変更なしにWindows 95への移行を行えるよう、Win32の中でWin16と共通した部分のみがWin32sとしてまとめられ、そのAPIとライブラリが無料配布された。Windows 95では互換性を保持するためWin16ベースのアプリケーションも動作は可能であったが、制約が大きくOSをフリーズさせやすくする恐れがあったため、マイクロソフトはアプリケーションの32ビット化を推奨した。

 衰退 
16ビットOSではメモリアドレスが64KB（2の16乗）までしか一回で表現できないことから、Windows 3.1当時のWindowsプログラマはそれ以上のメモリを「一度には」扱うことができず、処理を分けて少しずつメモリを使わなくてはならないなどの制限に縛られていた。Win32sはAPIが32ビット化しただけであり、Windows 3.1上で動く以上はそうした制限を引きずっていた。一方で32ビットOSではこのような制限を気にせずプログラムが組めることが大きな利点だったことから、Windows 95の登場はプログラマにとってたいへん歓迎され、95登場後はWin32sへの関心は急速に失われていった（立ち読み用PDF「第一章 Windowsの概念の紹介」）。

実際にWindows 95が普及すると、Win32s (Windows 3.1) の制限を順守するようなプログラムは作られなくなり、プログラマやソフトウエアベンダも95専用アプリケーションに急速にシフトしていった。その結果Windows 3.1は急速に衰退し、Win32sもその役割を終えた。

 付録 
Win32sインストール後の動作確認用アプリケーションとして、32ビット版フリーセルが付属していた。（インストールは任意）

 脚注・出典 

 関連項目 
 Windows 3.1
 Windows 95
 Win16
 Win32
 フリーセル

 外部リンク 
 Win32Sの詳細情報 : Vector
 1.30c fareast

Category:ライブラリ (プログラミング)
Category:マイクロソフトのAPI
Category:廃止されたWindowsのコンポーネント

de:Windows Application Programming Interface#Win32s