使用VS 2008(带sp1)编译VC 6.0的一个工程,出现下面的编译错误
来源:互联网 发布:淘宝解封lol账号 编辑:程序博客网 时间:2024/05/29 03:47
作者:朱金灿
来源:http://www.cnblogs.com/clever101
使用VS 2008(带sp1)编译VC 6.0的一个工程,出现下面的编译错误:
1>c:\program files\microsoft sdks\windows\v6.0a\include\sdkddkver.h(217) : fatal error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE setting
产生这个错误的原因是原因是_WIN32_WINNT的版本定义太老,老的VC代码对_WIN32_WINNT的典型设置是:
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
0x0400相对于VS2008所带的Plarform SDK(在文件sdkddkver.h中)中_WIN32_IE的定义来说太老了,导致不兼容,可以将其改成0x0501或更高的版本避免这个问题,如下所示:
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
也可以将这三行_WIN32_WINNT定义删除,这样就会使用Plarform SDK中的_WIN32_WINNT定义,自然就不存在不兼容问题了。不过出于对老版本VC的兼容考虑(毕竟以后可能还要使用VC6编译代码),最好这样修改:
#if _MSC_VER <= 1200 // MFC 6.0 or earlier
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
#endif
另外WINVER宏也要删除掉或者重新定义值。
- 使用VS 2008(带sp1)编译VC 6.0的一个工程,出现下面的编译错误
- vs.net 中编译链接vc工程时的LNK171@mspdb140.dll错误处理
- VC编译出现ambiguous symbol的错误
- 使用vs编译出现 ”error LNK1169: 找到一个或多个多重定义的符号“的错误
- VC 6.0工程转VC 2005工程的编译错误----消息处理宏
- vs编译工程的坑
- vs的LNK1146错误(任何工程编译都报错)
- vc/vs工程命令行编译
- 关于一个android工程同时使用多个工程库,在编译时出现的问题
- 使用 VS 2012 编译 GTest 遇到的编译错误
- 使用 VS 2012 编译 GTest 遇到的编译错误
- 编译出现的错误
- VS 2005 打开 VC 6.0 工程,编译出现 cannot open file libc.lib
- VS中使用CXTPDockingPane出现的编译错误 error C2059: syntax error : 'constant' 解决
- 把 VC 工程的编译配置写在一个文件中,并影响 VC 的编译
- vc++6.0编译时出现的问题
- vc++6.0 编译出现问题的解决方法
- VC命令行编译中出现Invalid switch错误的解决办法
- 骇死骇客的密码
- FPGA Verilog HDL 系列实例--------D 触发器
- 安装libjpeg库
- Linux下的多线程机制的分析与实现
- 微积分的一些相关定理
- 使用VS 2008(带sp1)编译VC 6.0的一个工程,出现下面的编译错误
- mongo连接池参数
- Yii框架拓展之JUI 轻松做TAB标签
- 关于samba服务器的搭建问题。
- bio与块设备驱动
- Hadoop Metrics体系分析之一:认识Metrics
- iphone ios 屏幕,statusbar,状态栏,标签栏尺寸,高度
- FF 参考
- mysql 多表 update sql语句总结