VS2010遇到_WIN32_WINNT宏定义问题

在xp和win7上都遇到一个诡异的问题,先记下来。 在visual studio 2010编译程序的时候,出现如下的报错: Error C1189: #error This file requires _WIN32_WINNT to be #defined at least to 0×0403. Value 0×0501 or higher is recommended.    c:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcore.h 在网上找这个问题的解决方法,都是在stdafx.h添加:

  1. #ifndef WINVER       
  2. #define WINVER 0×0501
  3. #endif
  4.  
  5. #ifndef _WIN32_WINNT
  6. #define _WIN32_WINNT 0×0501
  7. #endif                        
  8.  
  9. #ifndef _WIN32_WINDOWS     
  10. #define _WIN32_WINDOWS 0×0501
  11. #endif
  12.  
  13. #ifndef _WIN32_IE            
  14. #define _WIN32_IE 0×0601    
  15. #endif

 

 

但对我并没有解决问题,因为_WIN32_WINNT明显已经在其他地方定义了,因而上述代码的#ifndef都失效了;

进一步问题显示的情况如下: 鼠标移至atlcore.h文件中的_WIN32_WINNT上,浮动窗口给出提示:#define _WIN32_WINNT 0×400,可见某处已经将其宏定义为0×400,故而报错;

image

但是当我右击选择“Go to definition”时,Find窗口弹出寻找一堆结果:

image

可以看到并没有上面显示的0×400,真是奇怪啊。 针对这个问题,有一个解决方法如下:

在Project Property –> Configuration Properties –> C/C++  -> Command Line的Additional Options框中输入:

/D “_WIN32_WINNT=0×0501”

如果操作系统是Windows server 2003,则上述0×0501处改为0×0502;若为Windows 7,则为0×0601。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值