_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
這個錯誤在編譯期間不斷彈出。它似乎不影響編譯,但我應該如何擺脫它?我是否忽略了任何冒險行爲?如何擺脫_WIN32_WINNT未定義的警告?
_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
這個錯誤在編譯期間不斷彈出。它似乎不影響編譯,但我應該如何擺脫它?我是否忽略了任何冒險行爲?如何擺脫_WIN32_WINNT未定義的警告?
它是通過WinSDKVer.h爲您定義的。因此,只需在源代碼的頂部明確定義它(例如在stdafx.h的開頭),就可以擺脫警告。
將它定義爲相同的值(與來自WinSDKVer.h的_WIN32_WINNT_MAXVER
相比)是非常不可能破壞任何東西的。
例如,視窗軟件開發工具包WinSDKVer.h(SDK),爲Windows 7和.NET Framework 3.5 Service Pack 1中包含:
// This list contains the highest version constants supported by content
// in the Windows SDK.
// [...]
#define _WIN32_WINNT_MAXVER 0x0601
它設置爲最古老的Windows操作系統,您希望您的程序運行。 可能的值在本MSDN文章Using the Windows Headers中給出。
您可以通過在每個 源文件
#define
聲明,或通過指定 的Visual C++支持/D
編譯器選項定義這些符號。例如,設置
WINVER
在源文件中,使用 下面的語句:#define WINVER 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2
要設置
_WIN32_WINNT
在源文件中,使用下面的語句:#define _WIN32_WINNT 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2
設置
_WIN32_WINNT
使用/D
編譯器選項,請使用以下命令:cl -c /D_WIN32_WINNT=0x0502 source.cpp
我建議幾乎在開始時將它添加到StdAfx.h。這是每個操作系統的值列表。 http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx –