Win32
読み:ウィンさんに
外語:Win32
Windows NTやWindows 2000以降、あるいはWindows 95/98/Meでの開発フレームワーク。32ビット環境である。
概要
従来のWin16と互換性はない。ただし、32ビットWindowsはWin16にも対応したため、従来のアプリケーションも実行できた。
特徴は、メモリー保護によるアプリケーションプロテクションが実現できること、仮想記憶も含めギガバイトクラスのメモリーアドレスが利用できるなどがある。更にAPIレベルで、ファイルやデバイスの入出力、時間や日付の操作、タイマー、Unicode、プロセス、スレッド、レジストリ、TAPIによる通信制御、セキュリティや暗号化などの新機能が搭載されている。
特徴
種類
単純にWin32といっても細かく分けると多数存在する。
Win32sなどの例外的な環境の他、大きくWindows NTシリーズとWindows 9xシリーズがある。
- Win32s
- Windows 9xシリーズ
- Windows NTシリーズ
更に、サービスパック導入やInternet Explorerの導入、Microsoft Officeの導入、Windows 95のOSRリリース毎の微妙な差異などが存在する。
Win32のNT系と95/98/Me系での大きな違いは、95/98/MeはUnicodeをサポートしていない点、NTでは32ビットで扱う画面座標が95/98/Meでは16ビットである点、NTでは日付が2107/12/31まで扱えるが 95/98/Meでは2099/12/31までである点などのほか、95/98/MeではNTにある多くの機能が利用できない。
現状
Windows 9xシリーズなど古いOSは既にサポートが終了していることもあり、Microsoft純正のコンパイラーであっても、新しいバージョンでは古いOSで実行できないバイナリを出力する。
Visual C++ 4.2以降の吐くバイナリはWin32sで実行できず、Visual C++ 8.0(Visual Studio 2005)以降の吐くバイナリはWindows 95で実行できず、Visual C++ 9.0(Visual Studio 2008)以降の吐くバイナリはWindows 98/Me/NT4で実行できず、Visual C++ 10.0(Visual Studio 2010)以降の吐くバイナリはWindows 2000で実行できない。
既にWindows 9xシリーズを考慮するご時世でもないため、近年は2000以降あるいはXP以降に対応する製品が多い。9x対応が必要だった頃は、Visual C++ 6.0のテンプレートのバグに悩まされることも多かったが、現在ではそれを考慮する必要もなくなった。
再検索