1.?re: VC6正在被抛弃

263阅读 0评论2008-11-19 FOQoVbA
分类:

(转载请注明来源于金庆的专栏)

我还在用的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已停止正式的支持。

看来我该升级了,先升级我的机器。

--------------------next---------------------
有毛病吧,现在还讨论VC6?我承认在那个一统江湖的年代,VC6给了我太多的快乐。第一次使用vc7.1的时候,我真想狂骂。但是我知道,要接受新事物,首先是要在思想上接受新事物!!!!!

程序员是顽固的,僵化的,所以一直不愿意脱离VC6,可是当我渐渐熟悉7.1的时候。我彻底删除了vc6。为了兼容,我现在机器上装有vs2003,vs2005,vs2008。别告诉我你还用10年前的mmx200,我家有台破笔记本,运行vs2005一点问题都没有。

说自己机器慢不肯定用vs2003的固执程序员,我实在不想说啥了。
如果要真他爷爷的固执,干脆用tc2.0,那个可比vc6还要经典100倍!!!
C的程序简洁明了,也足够开发了!


做了程序员这么多年,我实在是见到了太多固执透彻的程序员,有些时候甚至固执的让我五体投地!程序员的固执,啥时候能改改。日了,想起这个话题就想骂。。。    
  
--------------------next---------------------
又菜了不是,需求导致。懂吗?需求!!!

我一个超市的收银POS机,非得让我装一个windows server 2003,有必要吗??一个DOS简洁明了。

问题是你要搞清楚你的地位。你是程序员,你是工程师,你是发明技术的角儿!!

对,你是程序员,但是你用老系统,写了一大堆破代码,不是为了绕开C++规范,而是该死的编译器。别人用的时候怎么想??

对,你是工程师,一个工程师使用老旧的系统外行会怎么看?就像已经有了示波器,但是你丫还不用他调试电子系统一样土!

对,你说发明技术的角儿。用那么落后的编译器,很多template不兼容,你怎么发明新技术,俗语是磨刀不误砍柴工,不是 做刀不误砍柴工!!


你如果是一个普通人,你怀旧,别人认为你是童心未眠。
如果你是一个菜鸟,你怀旧,别人认为你不够成熟。
如果你自诩为一个程序员,一个高级程序员,一个C++爱好者(当然C++也快淘汰了),一个玩技术的人,你还在用破编译器,那我只能说,你丫无聊闲得慌了。

当然,肯定还有人倔强,说,我就用了,怎地吧?
我说,你牛逼,用本事你就一直用。不用都不行!!!!



    
  
--------------------next---------------------
在搜索一篇文章的时候,歪打正着又来到这里。。晕。。。。

首先我承认那天有点过激,但是我觉得我说的还是不无道理。

to 无名
快速切换什么的,跟vs没有关系,何况,你可以把vs配置成和vc6一样的快捷键。

语言之间的争论确实很无聊,因为没有可比性。但是编译器则不同,他们可以对比,至少可以不误导新手。我建议新手还是直接使用vs最新版本。

在最近版本中,C++编译器也做了高度的优化,代码运行的更快更稳定了。
VC6和vs系列,终究到底是编译出一个exe。
所以,根本没有客户要求这个东西一定使用vc6的可能。唯一的,是否能从心理上接受新事物。我那天所生气的是,程序员总是不肯接受新事物,杯子总是满的。

想想自己就是,从vc6升级到vc7的时候,当时vc7全是bug,IDE莫名其妙崩溃,感觉很是烦。后来升级到vc7.1,也是斗争了很久。现在用顺手了,也确实发现新版本的好处了。vs2008就很好用。。

还想说,但是越大越无聊,又不想删除。随便了,爱用啥用啥吧。反正都是程序员。







    
  
--------------------next---------------------

上一篇:开发MT4指标和EA(自动交易系统)
下一篇:1.?VC6正在被抛弃(2517)