带有Boost的D_WIN32_WINNT编译器警告

bob*_*205 24 c++ boost boost-preprocessor

不知道该怎么做这个错误.添加-D_WIN32_WINNT=0x0501到项目属性下的Visual Studio的"命令行"选项,但它表示它无法识别它并且警告仍然出现.

我也不确定如何添加预处理器定义.

1>请正确定义_WIN32_WINNT或_WIN32_WINDOWS.例如:
1> - 将-D_WIN32_WINNT = 0x0501添加到编译器命令行; 或
1> - 将_WIN32_WINNT = 0x0501添加到项目的预处理器定义中.

fov*_*ven 22

我认为你真的很接近这个工作.John Dibling提供了三种方法可以做到这一点,看起来你尝试了第三个解决方案,即"进入你的项目设置......并在配置属性 - > C/C++ - > PreProcessor标题下添加;_WIN32_WINNT = 0x0501".您回答说您仍然收到该错误并提供了预处理器设置的内容WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT = 0x0501.如果你换_WIN32_WINNT = 0x0501到,我认为你可以解决这个问题_WIN32_WINNT=0x0501.当我尝试使用空格的版本时,它并没有消除错误,但删除了空格.


Joh*_*ing 15

一些选择.

1)如果你有一个主头文件,比如stdafx.h,你可以添加:

#define _WIN32_WINNT 0x0501
Run Code Online (Sandbox Code Playgroud)

或者您可以在任何需要的地方添加.

2)你可以添加-D _WIN32_WINNT=0x0501(注意空格)

3)转到项目属性>配置属性> C/C++> Proporcessor.添加;_WIN32_WINNT=0x0501预处理器定义.

就个人而言,我选择#3因为毫无疑问它是在正确的时间在正确的翻译单元中定义的,我宁愿将所有#defines放在一个地方而不是一些在预处理器定义中,而其他在高级选项卡中.

  • 和@ bobber205:在选项#3中,不要在预处理器定义行中的等号周围放置空格 (2认同)

Hil*_*ill 13

在顶部源代码中添加以下行.

#include <SDKDDKVer.h>
Run Code Online (Sandbox Code Playgroud)

  • 使用来自实际 SDK 的实际版本似乎是正确的方法,而不是几乎随机选择某个目标。 (3认同)
  • 这看起来确实是正确的修复方法。 (3认同)