带有Boost的D_WIN32_WINNT编译器警告

时间:2010-06-08 18:38:25

标签: c++ boost boost-preprocessor

不确定该错误的原因。在项目属性下的Visual Studio的“命令行”选项中添加了-D_WIN32_WINNT=0x0501,但它说它无法识别它并且警告仍然出现。

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

  

1>请定义_WIN32_WINNT或   _WIN32_WINDOWS恰当。例如:
  1> - add -D_WIN32_WINNT = 0x0501   到编译器命令行;或
  1 GT; -   将_WIN32_WINNT = 0x0501添加到您的   项目的预处理器定义。

5 个答案:

答案 0 :(得分:22)

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

答案 1 :(得分:13)

一些选择。

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

#define _WIN32_WINNT 0x0501

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

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

3)转到项目属性>配置属性> C / C ++> Proporcessor 即可。将;_WIN32_WINNT=0x0501添加到预处理程序定义

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

答案 2 :(得分:11)

在您的热门源代码中添加以下行。

#include <SDKDDKVer.h>

答案 3 :(得分:3)

在D

之后放一个空格

答案 4 :(得分:0)

对于代码块,这里是你如何做到的。

右键单击**Project Name** on your left >> Click 'Build Options' >> Select Debug or Release on your left >> Select 'Compiler Settings' Tab on the right >> Select #defines tab >>然后按原样添加以下行:

_WIN32_WINNT=0x0501

>> Click Ok >> Close >> Right click **Project Name** again >> Re-build.