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を使用することになる。ヘッダファイルをインクルードする前に、codice_1などのターゲット環境のバージョン番号を表すマクロシンボルを適切に定義することで、新しいWindows API関数や新しい構造体が使用できるようになる。逆に、新しいSDKで古い実行環境をサポートする場合も、同様にマクロシンボルを適切に定義してAPIバージョンを制限する必要がある。古いバージョンのWindowsもターゲットに含めつつ、新しいバージョンのWindows上では新機能を使いたい場合、codice_2を使ってシステムDLLから新しいAPI関数のエントリポイントを動的に取得するなどの方法を採る。
コンパイラやSDKのバージョンによっては、古いバージョンのWindowsを実行環境としてサポートしない。例えばWindows 10 SDKでは、Windows 7 SP1以降を対象としたコードの記述をサポートする。
また、マイクロソフトが提供しているソフトウェア統合開発環境であるVisual Studioには、標準でWindows SDKが含まれているが、こちらは基本的に単体で提供されているSDKのサブセットやマイナーチェンジであり、単体版と比較してサンプルやツール類の一部が含まれていないことがある。なお、対応する単体版のSDKを使用するようにVisual Studioを設定することも可能である。
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が必要となる。
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 には含まれていない。また、以前のバージョンでは種々のサンプルコードがSDKパッケージに含まれていたが、8.0以降はMSDNおよびGitHubに移管されている。
その他.
上記いずれとも、MSDNサブスクリプションの会員ならダウンロード可能である。