VC6使用#pragma warning的一点经验 (转)

VC6使用#pragma warning的一点经验 (转)[@more@]

1.  在VC6.0中定义类CXMLError的头文件中起始处有如下#include语句

#include

#include

microsoft-com:Office:office" />

class CXMLError 

{

  …

在使用Level 4编译时,报告C4100,C4511,C4512,C4663,C4245,C4018几种Warning

2.  修改为如下:

#pragma warning( push )

#pragma warning( disable :  4100 4511 4512 4663 4245 4018)

#include

#include

#pragma warning( pop )

这时产生了大量C4514警告。

3.  再修改为

#pragma warning( push )

#pragma warning( disable :  4100 4511 4512 4663 4245 4018 4514)

#include

#include

#pragma warning( pop )

结果依然如上,有大量C4514警告,少量4663,4245,4108。

4.  再修改如下:

#pragma warning( disable :  4100 4511 4512 4663 4245 4018 4514)

#pragma warning( push )

#include

#include

#pragma warning( pop )

结果只余下4663, 4245, 4108

由于不能去除4663, 4245, 4108三种警告

5.  又对包含头文件修改为在Level 3编译,如下:

#pragma warning( disable:4514)

#pragma warning( push,3 )

#include

#include

#pragma warning( pop)

结果无警告产生。

6.  又尝试如下修改:

#include

#pragma warning( push,3 )

#include

#pragma warning( pop)

结果无警告产生。

小结:

1.  在防止包含头文件引起的Warning而使用#pragma warning时,应只针对产生警告的头文件进行处理,在这个问题中是,这时应该在#include 上面加#pragma warning(push),否则可能增加其它警告,如此处产生的大量C4514

2.  在使用#pragma warning(push)后使用#pragma warning(disable: xxxx)可能无效时,可以尝试交换两个语句的顺序,这可能是VC6.0中的#pragma warning的bug

3. 在VC6.0中存在一些不能diable掉的Warning,如4663, 4245, 4108等。这可能是VC6.0的Bug,如已知的C4786在VC6.0中不能disable掉,使用#pragma warning(disable : 4786)之后仍然会显示警告。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-958824/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-958824/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值