VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
2014-04-11 15:42
489 查看
在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添加:
#ifndef WINVER
#define WINVER 0×0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0×0501
#endif
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0×0501
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0×0601
#endif
但对我并没有解决问题,因为_WIN32_WINNT明显已经在其他地方定义了,因而上述代码的#ifndef都失效了;
进一步问题显示的情况如下: 鼠标移至atlcore.h文件中的_WIN32_WINNT上,浮动窗口给出提示:#define _WIN32_WINNT 0×400,可见某处已经将其宏定义为0×400,故而报错;
但是当我右击选择“Go to definition”时,Find窗口弹出寻找一堆结果:
可以看到并没有上面显示的0×400,真是奇怪啊。 针对这个问题,有一个解决方法如下:
在Project Property –> Configuration Properties –> C/C++ -> Command
Line的Additional Options框中输入:
/D _WIN32_WINNT=0x0501
如果操作系统是Windows server 2003,则上述0×0501处改为0×0502;若为Windows 7,则为0×0601。
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添加:
#ifndef WINVER
#define WINVER 0×0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0×0501
#endif
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0×0501
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0×0601
#endif
但对我并没有解决问题,因为_WIN32_WINNT明显已经在其他地方定义了,因而上述代码的#ifndef都失效了;
进一步问题显示的情况如下: 鼠标移至atlcore.h文件中的_WIN32_WINNT上,浮动窗口给出提示:#define _WIN32_WINNT 0×400,可见某处已经将其宏定义为0×400,故而报错;
但是当我右击选择“Go to definition”时,Find窗口弹出寻找一堆结果:
可以看到并没有上面显示的0×400,真是奇怪啊。 针对这个问题,有一个解决方法如下:
在Project Property –> Configuration Properties –> C/C++ -> Command
Line的Additional Options框中输入:
/D _WIN32_WINNT=0x0501
如果操作系统是Windows server 2003,则上述0×0501处改为0×0502;若为Windows 7,则为0×0601。
相关文章推荐
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least ...解决
- VS2010编译错误:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0
- vc2010_error C1189:#error:This file requires _WIN32_WINNT to be #defined at least to 0x
- VS2010编译错误 #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法