error C1189以及warning MSB8012

今天在将一个VS2003的工程转化为VS2010的时候,出了一些问题。

首先是:

fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.

其次是:

warning MSB8012: TargetExt(.exe) 与 Linker 的OutputFile 属性值(.scr)不匹配。

针对第一个bug的解决方案是找到stdafx.h,添加以下的语句,并且注释掉类似的。

#ifndef WINVER // Allow use of features specific to Windows95 and Windows NT 4 or later.
#define WINVER 0x0501 // Change this to theappropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT // Allow use of featuresspecific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501 // Change this to theappropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINDOWS // Allow use of featuresspecific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501 // Change this tothe appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE // Allow use of featuresspecific to IE 4.0 or later.
#define _WIN32_IE 0x0601 // Change this to theappropriate value to target IE 5.0 or later.
#endif

 

针对第二个bug的原因是linker的输出文件和目标文件不一致,从而导致不能正常的链接程序,这一点我们可以参考任何一个正常的VS2010的工程,观察期那些目录的设置,然后把转换的工程的目录配置改成和正常工程的目录配置一样就可以了。

VS2010中属性-》配置属性-》常规


VS2010中属性-》链接-》常规


VS2003中经过VS2010转化后Release版本的展示,属性-配置属性-》常规


VS2003中经过VS2010转化后Release版本的展示,属性-》链接-》常规


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值