ソフト開発

記者の眼

日経ソフトウエア

生き永らえるWin32 API

 Windows NTやWindows 95といった32ビット版Windowsが登場してから約17年が経つ。Windows 98、2000、XP、Vistaなどを経て、現在のWindows 7に至るまで、その見た目はずいぶん変わったように思えるが、ほとんど変わらずに維持されているものがある。それはC/C++などのプログラムからWindowsの各機能にアクセスするためのAPIである「Win32 API」だ。

 筆者は先ごろ、過去に日経ソフトウエアに掲載したWin32 API関連の特集や連載記事を収録したムック「APIで学ぶWindowsプログラミング」の編集作業を担当した。その作業の一環として、当時の記事で解説に使ったC言語サンプルプログラムのプロジェクト(プログラムのソースコードや関連ファイルを集めたもの)を、Windows 7(32ビット版)で動作する最新の開発ツール「Visual C++ 2010」に読み込み直して動作を確認した。その結果、プロジェクトの設定ファイルを修正しなければならないものはあったが、Cプログラムのソースコードはすべて、全く手を入れることなく動作した。

 これらのサンプルプログラムはWin32 APIの基本的な機能しか使っていない簡単なものなのでこの結果は当然であり、もっと複雑なプログラムでは違った結果になるかもしれない。しかし、マイクロソフトがWin32 APIのような低水準のインタフェースを17年の長きにわたって維持していること、あるいは維持しようとしていることにはある種の感銘を受ける。

 実は2003年にマイクロソフトは、2005年以降に出荷予定の次世代OS「Longhorn(開発コード名)」でWin32 APIの後継となる新APIとして「WinFX」を採用する旨を発表した(関連記事:さらばWin32 API、ついに姿を見せたLonghorn)。マイクロソフトの思惑通りに事が運べば、Win32 APIはLonghornの製品化に合わせてWinFXにその座を譲るはずだった。

 しかし、そうはならなかった。Longhornが「Windows Vista」として2007年1月にようやく発売になったときには、WinFXと呼ばれていた新APIは「.NET Framework 3.0」と名称が変更され、Win32 APIは引き続きサポートされることになっていた(参考:WinFXから .NET Framework 3.0への名前変更について)。

 かくして、Win32 APIは生き永らえている。今後はWin64 APIを実装する64ビット版Windowsが普及していくだろうが、Win32 APIとWin64 APIの間には互換性が確保されていることに加えて、64ビット版Windows上でWin32 APIをエミュレーションする「WOW64(Windows on Windows 64)」技術もある。.NET Frameworkの利用が広がるにつれて徐々に地位は低下するかもしれないが、Win32 APIが当分の間、Windowsアプリケーション開発者にとって重要であり続けることは間違いない。

(中條 将典=日経ソフトウエア)  [2010/06/16]

この記事に対する読者コメント

コメントに関する諸注意 コメント投稿 コメント一覧 

今週の特集

【相次ぐIFRS導入支援サービス】 「ロードマップ策定」は1000万円前後  IFRS導入支援サービスを提供するITベンダーが、影響度診断の後に着手するのがプロジェクトのスケジュール作成だ。この作業を支援するのが「ロードマップ策定」サービスである。

>>目次

【クライアント仮想化技術の現在】 [Microsoft]Windows 7が仮想化を標準搭載  OSとオフィスアプリのベンダーであるマイクロソフトは、これらと連携した多様な仮想化技術を持つ。アプリの仮想化、デスクトップの仮想化を中心に同社が目指すクライアント仮想化の姿を見ていこう。

>>目次

【ベンダーに聞くデータ活用】 小規模環境に対応するBIが求められている  豪イエローフィンはビジネスインテリジェンス(BI)の専業ベンダー。グレン・ラビーCEOは「大手ベンダーの多機能で重い製品ではなく、簡単でコンパクトに使えるBIが求められている」と話す。

>>目次

【RFP完全マニュアル 実践編】 保守・維持管理に関する要求の取りまとめ方  保守サポートの窓口を一本化するような提案を要求することを忘れてはならない。製品ごとに問題を切り分けて、個別のサポート窓口に連絡する負荷は大きく、運用面からはなるべく避けるべきである。

>>目次