首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 在VC6下编译MTL程序,出现的C4786错误的原因和解决办法
【标  题】:在VC6下编译MTL程序,出现的C4786错误的原因和解决办法
【关键字】:VC6,MTL,C4786
【来  源】:http://blog.csdn.net/polinzhuo/archive/2006/09/20/1253228.aspx

在VC6下编译MTL程序,出现的C4786错误的原因和解决办法

编译时产生C4786的warning,原因是标识符的长度超过255个字符的在调试版中将被截断。

原因在于标准库中的组件几乎全部采用模板技术实现,为了便于使用,采用了typedef提供了简短的替代品,然而对于编译器来说,仍然采用实际的类型标识符,因此导致类型标识符长度快速增长,尤其是当模板参数同样采用模板类型实例化时更为明显。

VC6调试版(Debug)的代码生成器仅仅支持255个字符长度的标识符,因此导致截断的发生。然而正式版(Release)的代码生成器具有更宽的标识符长度限制。

解决这个问题的方法是:

1) 最简单的方法是,忽略这些警告信息,大多数情况,截断后的标识符仍然可以正常工作。

2) 或者使用编译器指令关闭这个警告。即#pragma warning(disable:4786)。将指令放在包含头文件的前面

3) 当然,也可以选择仅仅编译正式版(Release)的代码,如果你没有依赖调试版在源代码中插入调试代码段。
 

MAP原理及其在MFC中的实现:【上一篇】
C语言实现递归算法:【下一篇】
【相关文章】
  • 最简单的Shockwave播放器(VC6)
  • apache xerces c++ windows 下编译与vc6实例
  • VC6的MFC应用中集成COM的一个小问题
  • vc7 to vc6 project转换器[原创]
  • Oracle9i中OCCI在VC6下不能DEBUG的问题及解决方法
  • 用VC6和Install Shield6.2进行自动化构建
  • VS.Net 2003/VC6.0常用快捷键集合
  • vc6用isapi的filter实现url重定向功能
  • 一例奇怪的编译错误(VC6)
  • 如何在vc6,vc7,vc8下编译x264
  • 【随机文章】
  • Windows XP 的程序兼容向导
  • 老公精挑细选
  • 黑客帝国数字流特效制作揭密
  • 入侵检测系统IDS测试与评估
  • solaris入门培训资料
  • HACMP全攻略之准备篇
  • 暑假结束前准备攥机一台
  • 使用路由器作流量检测的几个手段
  • jigloo插件简介
  • 移动上演人事大地震
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.