_WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
Run Code Online (Sandbox Code Playgroud)
在编译期间,此错误不断弹出.它似乎不会影响编译,但我应该如何摆脱它?我无视任何冒险的事吗?
use*_*353 19
将其设置为您希望程序运行的最旧的Windows操作系统.可能的值在此MSDN文章" 使用Windows标头"中给出.
您可以使用
#define每个源文件中的语句或通过指定/DVisual C++支持的编译器选项来定义这些符号.例如,要
WINVER在源文件中设置,请使用以下语句:Run Code Online (Sandbox Code Playgroud)#define WINVER 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2要
_WIN32_WINNT在源文件中设置,请使用以下语句:Run Code Online (Sandbox Code Playgroud)#define _WIN32_WINNT 0x0502 // Windows Server 2003 with SP1, Windows XP with SP2要
_WIN32_WINNT使用/D编译器选项进行设置,请使用以下命令:Run Code Online (Sandbox Code Playgroud)cl -c /D_WIN32_WINNT=0x0502 source.cpp
Rom*_* R. 16
它是通过WinSDKVer.h为您定义的.因此,只需在源代码的顶部明确定义它(例如在stdafx.h的开头),你就会摆脱警告.
将它定义为相同的值(与_WIN32_WINNT_MAXVERWinSDKVer.h 相比)极不可能破坏任何东西.
例如,适用于Windows 7和.NET Framework 3.5 Service Pack 1的Windows®软件开发工具包(SDK)的WinSDKVer.h包含:
// This list contains the highest version constants supported by content
// in the Windows SDK.
// [...]
#define _WIN32_WINNT_MAXVER 0x0601
Run Code Online (Sandbox Code Playgroud)
解决此问题的方法以及可能使用的值的链接可以在我用来解决问题的 user93353 的超级答案中找到。
但是,在阅读解决方案后,我在 IDE(Visual Studio 2019)中设置了编译器选项。
对于任何想要快速设置它并想要知道位置的人(因为这些事情随着 IDE 版本的不同而变化,或者也许有人更熟悉另一个 IDE),这里就是它的位置。
配置属性
C/C++
预处理器
预处理器定义
_WIN32_WINNT=0x0502