c++
を学んだ後、win32
およびvb.net
プログラミングを自分で教えることにしました。非常に簡単な質問があります。
コンピューターにインストールされているWindows SDK
のバージョンを確認するにはどうすればよいですか?
c++
をいじり始める前に、まだインストールされていない場合は最新バージョンをインストールできるようにお願いしています。 Microsoft Visual Studio 2008 SP1
をIDE
として使用しています。
少なくとも英語ロケールでは:
dir "%ProgramFiles%\Microsoft SDKs\Windows"
動作するはずです。複数のバージョンがインストールされている可能性が非常に高く、1つのビルドに適切なバージョンは、そのプロジェクトでのみ指定できます。
コンパイル中に、使用されているWindows SDKの主要なOSバージョンを判断する必要がある場合は、ntverp.hで定義されているVER_PRODUCTBUILDマクロを使用できます。例えば:
#include <ntverp.h>
#if VER_PRODUCTBUILD > 9600
// Windows 10+ SDK code goes here
#else
// Windows 8.1- SDK code goes here
#endif
製品は特定のプラットフォームSDKでビルドするように設計する必要があるため、ほとんどの場合、これは必要ありません。ただし、一部の大規模な製品では、複数のプラットフォームSDKをサポートすることが望ましい場合があります。これは、一方から他方へ移行するときに特に役立ちます。ヘッダーファイルにバグがある場合(bthledef.hのWindows 8.1 SDKバージョンの偽の「#pragma pop」など)、このバグを回避する必要があるかもしれませんが、Windows 10 SDKを使用する場合は回避策を含めないでください。以上。この手法は、必要なSDKバージョンがインストールされていない場合に役立つエラーメッセージを提供するためにも使用できます。
VER_PRODUCTBUILDは、8.1と10などの主要なOSバージョン情報のみを提供することに注意してください。つまり、VER_PRODUCTBUILDは、Windows 10の更新で変更されないため、役に立たなくなります。したがって、sdkddkver.hとNTDDI_WIN10_ *マクロ。 Windows 10.0.17763.0 SDK以降、NTDDI_WIN10_RS5が定義されました。したがって、次のようなコードを記述します。
#include <sdkddkver.h>
#if !defined(NTDDI_WIN10_RS5)
#error Windows 10.0.17763.0 SDK is required
#endif
最新バージョンについては、次のregeditキーで確認してください。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits
または以下:
C:\Program Files (x86)\Microsoft SDKs\Windows Kits
Visual Studioがインストールされている場合は、Visual Studioソリューションを開く(または自分で作成する)ことができ、ソリューションエクスプローラーでソリューションを右クリックしてRetarget Solution
。メニューには、使用可能なWindows SDKバージョンのドロップダウンリストが表示されます。