web-dev-qa-db-ja.com

WINVERとは何ですか?

私はいくつかのコードを見ていました、そして彼らはこの行を持っていました:#define WINVER 0x0501 in stdafx.hファイル?なぜWINVERを定義する必要があるのですか?それはあなたのコードにどのように影響しますか?誰か説明してもらえますか?

26
aajkaltak

WINVERは、アプリケーションのビルドに必要な最小プラットフォームSDKを決定します。これにより、コンパイル時に、ヘッダーによって検出されるルーチンが決定されます。

これを使用して、コンパイル時に、アプリケーションがWindows 2000(0x0500)、またはWindows XP(0x0501)で動作することを確認できます。

WINVERと_WIN32_WINNTの変更 に関するMSDNのページでは、これについて詳しく説明しています。

23
Reed Copsey

WINVERは、プログラムを実行できる最小のWindowsシステムを定義します。より詳細な説明があります MSDNで 。何 #define WINVER 0x0501は、プログラムの実行にWindows XPまたはServer2003が必要であり、したがって、そのリリースまでのWindows機能を使用できることを意味します。

4
David Thornley

WINVERはWindowsバージョンを意味します。簡単に言うと、特定のバージョンのWindows用にビルドしている場合、以前のバージョンでは使用できないAPIがいくつか使用できます。

3
Graeme Perrow

WINVERマクロを定義することにより、特定のWindowsバージョンに固有の一連の関数を再表示します。たとえば、#define WINVER 0x0502として定義すると、Windows Vistaでのみ使用可能な TaskDialog を使用できなくなります。詳細については、MSDNの Windowsヘッダーの使用 の記事を参照してください。