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

Windows SDK
開発元 マイクロソフト
最新版
10.0.26100 / 2024年9月 (2 か月前) (2024-09)
対応OS 7 SP1 / 8.1 / 10 (バージョン1507以降) / 11 (バージョン21H2以降) / Server 2012 R2 / Server 2016 / Server 2019 / Server 2022[注釈 1]
プラットフォーム x86 / x64 / ARM / ARM64
種別 ソフトウェア開発キット
公式サイト Windows SDK - Windows app development, Windows デベロッパー センター
テンプレートを表示

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関数のエントリポイントを動的に取得するなどの方法を採る[1]

コンパイラやSDKのバージョンによっては、古いバージョンのWindowsを実行環境としてサポートしない[2]。例えばWindows 10/11 SDKでは、Windows 7 SP1以降を対象としたコードの記述をサポートする[3]

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

64ビット対応

編集

バージョン7.1までのPlatform/Windows SDKには、x64IA-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が必要となる[5][6]

DirectX SDKとの関連

編集

Windows 7 までは、Windows用マルチメディアAPIセットであるDirectXの開発キット「DirectX SDK」は、Windows SDKとは別に提供されていたが、一部のヘッダやインポートライブラリ(Direct3DDirect2DDirectInputXInputなど)は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 に含まれていた DirectMusic英語版XACT (XACT3) なども、Windows SDK 8.0 には含まれていない[7]。また、以前のバージョンでは種々のサンプルコードがSDKパッケージに含まれていたが、8.0以降はMSDNおよびGitHubに移管されている。

その他

編集
  • バージョン6.2.6000まで日本語版が提供されていた[8]
  • Visual C++ 6.0に対応した最後のPlatform SDKは2003年2月のリリースである[9]。現在はダウンロードでは提供されておらず、CDの注文が必要である[10]

上記いずれとも、MSDNサブスクリプションの会員ならダウンロード可能である[11]

脚注

編集

注釈

編集
  1. ^ 最新版SDKを利用した開発環境としてサポートされるOS。ただし古いOSではすべてのツールがサポートされるとは限らない。なお、SDKを使ってビルドされたバイナリの実行環境はコンパイラおよび設定に左右される。

出典

編集

関連項目

編集