2012-10-13 46 views

答えて

12

これは、WinSDKVer.hによって定義されています。したがって、ソースコードの先頭に明示的に定義するだけです(たとえばstdafx.hの冒頭)、警告を取り除きます。

(WinSDKVer.hの_WIN32_WINNT_MAXVERと比較して)同じ値に定義しておくと、何かを破壊する可能性はほとんどありません。例えば

、Windows 7との.NET Framework 3.5 Service Pack 1用のWindows®ソフトウェア開発キット(SDK)のWinSDKVer.hは含まれています

あなたがしたい最古のWindowsオペレーティングシステムに設定し
// This list contains the highest version constants supported by content 
// in the Windows SDK. 

// [...] 
#define _WIN32_WINNT_MAXVER  0x0601 
+1

私はStdAfx.hにほぼ最初から追加することをお勧めします。各OSの値の一覧を示します。 http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx –

14

実行するプログラム。 可能な値は、このMSDNの記事Using the Windows Headersに記載されています。

あなたは、または のVisual C++でサポートされている/Dコンパイラオプションを指定することにより、各 ソースファイル内#defineステートメントを使用して、これらのシンボルを定義することができます。例えば

、 次のステートメントを使用、ソースファイルにWINVERを設定するには:

#define _WIN32_WINNT 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2 

設定するには、次のステートメントを使用し、ソースファイルに_WIN32_WINNTを設定するには

#define WINVER 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2 

_WIN32_WINNT/Dコンパイラオプションを使用する場合は、次のコマンドを使用します。

cl -c /D_WIN32_WINNT=0x0502 source.cpp 
1

注:#define _WIN32_WINNTは、 "stdafx.h"を含む任意のヘッダーファイルの前にとしてください。の前に発生する必要があります。

+0

これは質問への回答を提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 – Stonz2

+2

@ Stonz2 I dunno ... [A]彼は "_WIN32_WINNTが定義されていません"というエラーを出すとOPが苦情を言います。 [B]エラーを取り除くために_WIN32_WINNTを定義する場所を教えています(「どこから取り除かなければならないのですか?」)。 [C]彼はこの種の助けをしないのですか? – Pierre

関連する問題