中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 综合文章
VC6使用#pragma warning的一点经验
作者:未知 时间:2003-07-08 12:12 出处:Blog 责编:chinaitpower
              摘要:VC6使用#pragma warning的一点经验

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

#include <comdef.h>

#include <string>

 

class CXMLError 

{

       

在使用Level 4编译时,报告C4100C4511C4512C4663C4245C4018几种Warning

 

2.       修改为如下:

#pragma warning( push )

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

#include <comdef.h>

#include <string>

#pragma warning( pop )

 

这时产生了大量C4514警告。

 

3.       再修改为

#pragma warning( push )

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

#include <comdef.h>

#include <string>

#pragma warning( pop )

 

结果依然如上,有大量C4514警告,少量466342454108

 

4.       再修改如下:

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

#pragma warning( push )

#include <comdef.h>

#include <string>

#pragma warning( pop )

结果只余下4663, 4245, 4108

 

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

 

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

#pragma warning( disable:4514)

#pragma warning( push,3 )

#include <comdef.h>

#include <string>

#pragma warning( pop)

 

结果无警告产生。

 

6.       又尝试如下修改:

#include <comdef.h>

#pragma warning( push,3 )

#include <string>

#pragma warning( pop)

 

结果无警告产生。

 

小结:

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

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

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

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有