Microsoft Windows SDK

Microsoft Windows SDK（マイクロソフト ウィンドウズ エスディーケー）とは、Microsoft Windowsで動作するアプリケーションソフトウェアを作成するためにマイクロソフトが無料で公開しているソフトウェア開発キット (SDK) である。Windows APIやWindowsランタイムAPIを利用するために必要なヘッダファイル、ライブラリ、ツール、サンプルを含んでいる。

Windows Vistaリリース前はMicrosoft Platform SDKという名称であったが、Platform SDKと.NET Framework SDKを統合し、Windows SDKとなった。

 Windowsバージョンとの関連 
新バージョンのWindowsで提供される新機能を使ったアプリケーションソフトウェア（新しいWindows APIあるいはCOMコンポーネントを使ったソフトウェア）を開発する場合、基本的に対応するC / C++言語用ヘッダファイルやDLLインポートライブラリなどが含まれる新しいWindows SDKを使用することになる。ヘッダファイルをインクルードする前に、WINVERなどのターゲット環境のバージョン番号を表すマクロシンボルを適切に定義することで、新しいWindows API関数や新しい構造体が使用できるようになる。逆に、新しいSDKで古い実行環境をサポートする場合も、同様にマクロシンボルを適切に定義してAPIバージョンを制限する必要がある。古いバージョンのWindowsもターゲットに含めつつ、新しいバージョンのWindows上では新機能を使いたい場合、GetProcAddress()を使ってシステムDLLから新しいAPI関数のエントリポイントを動的に取得するなどの方法を採るGetProcAddress | Microsoft Docs。

コンパイラやSDKのバージョンによっては、古いバージョンのWindowsを実行環境としてサポートしないUpdate WINVER and _WIN32_WINNT | Microsoft Docs。例えばWindows 10/11 SDKでは、Windows 7 SP1以降を対象としたコードの記述をサポートするHow to: Use the Windows SDK in a Windows Desktop application | Microsoft Learn。

また、マイクロソフトが提供しているソフトウェア統合開発環境であるVisual Studioには、標準でWindows SDKが含まれているが、VS2010以前にバンドルされているものは基本的に単体で提供されているSDKのサブセットやマイナーチェンジであり、単体版と比較してサンプルやツール類の一部が含まれていないことがある。なお、対応する単体版のSDKを使用するようにVisual Studioを設定することも可能である。VS2015まではVisual Studio本体の新規インストール時や修復インストール時に、バンドルされているWindows SDKをインストールできるが、VS2017以降は独立した専用の管理ツール「Visual Studio Installer」を使ってWindows SDKをインストール・管理することができるようになっているInstall Visual Studio | Microsoft Learn。

 64ビット対応 
バージョン7.1までのPlatform/Windows SDKには、x64とIA-64コードを出力するVisual C++コンパイラがそれぞれ含まれている。コマンドプロンプトから使用するほか、Visual C++ 2010 Express Editionと併せて用いることも可能である。

Visual C++ 2005が公開されるまで、Platform SDKが64ビット用Visual C++コンパイラを入手する唯一の手段であった。また、標準ライブラリの64ビット版も付属し、Visual C++ 6付属ライブラリのIA-64版は2003年2月に公開された版から、x64版はWindows Server 2003に対応したPlatform SDKの版から付属している。なお、両者共にマイクロソフトへ連絡するとVisual C++ .NET 2003付属ライブラリの64ビット版を取り寄せることができる。

Windows 10では64ビット版ARMアーキテクチャ (ARM64) にも対応しており、UWPアプリ/デスクトップアプリともにARM64の命令セットにネイティブ対応している。ARM64アプリケーション開発にはVisual Studio 2017 (15.9) 以降と対応SDKが必要となるWindows 10 on ARM - UWP applications | Microsoft DocsOfficial support for Windows 10 on ARM development - Windows Developer Blog。

 DirectX SDKとの関連 
Windows 7 までは、Windows用マルチメディアAPIセットであるDirectXの開発キット「DirectX SDK」は、Windows SDKとは別に提供されていたが、一部のヘッダやインポートライブラリ（Direct3D、Direct2D、DirectInput、XInputなど）はWindows SDKにも含まれるため、DirectX SDKなしでも一応DirectX APIを利用した開発は可能となっていた。ただし、ファイルのバージョンが最新のDirectX SDKに含まれるものと比べて古く（例えばWindows SDK 7.1のD3DCommon.hはDirectX SDK June 2010のそれよりも古く、定義されていないシンボルが多数ある）、また「D3DX（Direct3D 拡張ライブラリ）」のようなユーティリティライブラリ、および開発用の各種ツール類（スタンドアロンのHLSLコンパイラやテクスチャ編集ツールなど）は含まれていなかった。

2005年4月、DirectShowの開発環境がDirectX SDKからPlatform SDKへ移管された。そのときからDirectShowのサンプルもPlatform SDK（Windows SDK）に収録されているが、これをビルドするには依然としてDirectX SDKが必要である。

Windows 8 および Windows RT 用のWindowsストアアプリ開発もできるようになった Windows SDK バージョン 8.0 以降は、DirectX SDK は Windows SDK に統合された。DirectX 関連ツール類もリニューアルされたものが Visual Studio 2012 以降に統合されているが、D3DX ライブラリは廃止されている。そのほか、かつて DirectX SDK に含まれていた  や XACT (XACT3) なども、Windows SDK 8.0 には含まれていないDirectX SDKs of a certain age | Games for Windows and the DirectX SDK blog。また、以前のバージョンでは種々のサンプルコードがSDKパッケージに含まれていたが、8.0以降はMSDNおよびGitHubに移管されている。

 その他 
バージョン6.2.6000まで日本語版が提供されていたWindows Vista™ および .NET Framework 3.0 ランタイム コンポーネント用 Microsoft® Windows® Software Development Kit（2016年9月11日時点のアーカイブ）。
Visual C++ 6.0に対応した最後のPlatform SDKは2003年2月のリリースであるWindows Server 2003 PSDK Full Download with Local Install（2010年2月7日時点のアーカイブ）。現在はダウンロードでは提供されておらず、CDの注文が必要であるWindows Server 2003 SP1 Platform SDK ISO InstallのSystem Requirements - Development Toolsの項参照。
上記いずれとも、MSDNサブスクリプションの会員ならダウンロード可能である。

 脚注 

 注釈 

 出典 

 関連項目 
 Windows API
 ソフトウェア開発キット (SDK)
 Windows Driver Kit

Category:プログラミング
Windows SDK
Category:ソフトウェア開発キット