金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  55 随笔 :: 0 文章 :: 151 评论 :: 0 Trackbacks
(转载请注明来源于金庆的专栏)

我还在用的VC6本来早就该升级了,毕竟VC已经从VC6经历7.0、7.1、8.0,现在已经到了VC9(VC2008)了。
只是我比较恋旧,想想我的机器也受不了MS频繁的升级,现在的机器也就免强能跑跑VC6。

但是现在C++标准升级了,GCC也升级了,VC6 真的已经是必须丢弃的鸡骨头了。

VC6自带的std::string的引用计数在多核上让我受苦,查错一周有余才找到这个原凶。后来就促使我将stl库替换为StlPort。

boost.asio库明确说明不支持VC6。
stlsoft库某些组件无法兼容VC6(详细阅读了《Extended STL》,才知道为了VC6要耗费大量的精力,有些组件本身已很复杂,以至于需要排除VC6才能实现。)

今天使用boost.date_time时又发现VC6不行了。
time_formatters.hpp(72) : error C2664: '_i64toa' : cannot convert parameter 2 from 'unsigned short [32]' to 'char *'

time_formatters.hpp相应代码为:
      //TODO the following is totally non-generic, yelling FIXME
#if (defined(BOOST_MSVC) && (_MSC_VER < 1300))
      boost::int64_t frac_sec 
= 
        date_time::absolute_value(td.fractional_seconds());
      
// JDG [7/6/02 VC++ compatibility]
      charT buff[32];
      _i64toa(frac_sec, buff, 
10);
#else

VC6的_MSC_VER是1200,这段代码明显是针对VC6的。
可惜JDG的简单补丁并没有考虑VC6+STLP的情况,_i64toa()只能接受char buff,对于wchar则报以上错误。
实际上有StlPort,根本不必调用_i64toa(),因为int64_t在StlPort中是可以直接流式输出的。

为什么只用到char,仍会对wchar实例化?为什么data_time的库编译会成功?这些仍是问题。
不用Stlport就不会报这个错,可见wchar特化的实例化只在stlport环境下才进行。

查看date_time的文档,明确支持的VC版本只有VC7.1。
VC8有些问题。VC6、7已停止正式的支持。

看来我该升级了,先升级我的机器。
posted on 2008-03-14 15:58 金庆 阅读(2048) 评论(16)  编辑 收藏 引用 所属分类: 1. C/C++

评论

# re: VC6正在被抛弃 2008-03-14 17:15 DC
都快10年前的东西了,抛弃它了吧,否则世界会抛弃你的……

:)  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-14 17:28 Jeff Chen
同感。我在用boost库时也发现很多都不支持VC6,只能逼迫改用MFC来实现一些功能。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-14 17:50 空明流转
话说设计的像BOOST这样BT的库也不多。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-14 21:14 abettor
@空明流转
BOOST库BT,此话从何说起呀?  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-14 23:15 万连文
假如说对模板支持不好就被淘汰似乎不对。对于软件系统设计,静态多态和动态多态都是非常好的设计手法,我个人偏向虚接口派生类的方式。对于模板的多态, 脑筋始终转不过来。记得以前一个人面试我,问我用不用boost,我说不用,他立马对我态度大变,意思就是说不用模板系统就无法设计的独立优美的插件系统,软件模块化就不好。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-15 13:05 eXile
@万连文
其实静多态的优势就是运行效率高一点, 选择静多态还是动多态, 要看插件系统是基于源代码重用,还是二进制重用, 以及对性能的要求如何.
不过一个事实是:不用boost的人,一般对模板都了解不深, 我想这才是这个家伙态度大变的原因吧.  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-15 14:17 long.muyi
我更喜欢模板,它不光是效率的问题,更重要是设计。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-16 20:50 Kven
其实,我觉得VC6很好,对于初学者来说,是不错的磨练机。
虽然会被时代抛弃,可是能够真真体验一下,我们那些IT大哥大,
曾经怎样用这些跟不上时代的软件,打造出现时代的软件。
因为还没有VC9之前,也不是只有这些VC6,VC7罢了!!  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-17 09:57 Enoch
作为IDE,加上一些库的使用,本人认为VC6很完美,所以至今我还没有放弃,机子上只能是VC6+VS2005,毕竟时代也在进步,不能太念旧。
忘不了VC6。

好矛盾的心理。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-17 13:23 stlf
VC6不支持偏特化, STLPort为了在std::advace 中模拟偏特化绕了一大圈。 不过VC6使用的交互感觉确实很爽, 界面简洁,速度快, 对机器要求不高, 如果他能够继续升级(或许是打补丁的方式, 而不是臃肿的VS2005), 更好的支持标准C++那就perfect了!可惜接近完美的事物不多。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-17 16:09 不懂
我们还在用VC6,目前没有更新到更高版本的计划,难道我们落后了
  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-17 21:24 长江三峡
有些怀念  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-18 11:11 矩阵操作
要是实在太怀念VC6那个界面,可以在VC6里面挂上VC9或者VC8的编译器嘛!
个人认为,没有必要停留在VC6那个淘汰的编译器上  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-18 13:57 空明流转
@abettor
boost经常到标准最阴暗的角落去挖东西。。。
“我靠,我被8.5.3打败了”  回复  更多评论
  

# re: VC6正在被抛弃[未登录] 2008-03-22 02:23 alex
vc6的ide不错,后来的都是.net搞的版本。  回复  更多评论
  

# re: VC6正在被抛弃 2008-03-31 21:15 blueice
使用VC6的IDE和Intel C++ 9.0左右的版本来配合就不错,但有时生成的可执行文件比较大,VC6也是很经典的!  回复  更多评论
  


标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]