VC6 or VC7,让转变不再迷茫

原创 2004年08月21日 22:11:00

放假回来,去CSDN上一转,第一次发现了VC.NET版,因为我以前一直是不瞄.NET社区的(不是狂妄,是不懂),在上面看到一篇问对于VC.NET的种种顾虑的文章,突然想起在学校的BBS上也有人问类似的问题,突然想说两句。于是起了一个很狂的题目,说点鄙人的见解,希望对后来者有帮助。

那位老兄的问题中有一个是关于有VC6到VS.NET的转移的顾虑,这种顾虑我以前也是有的,例如我暂时不想学.NET,那么VC.NET是不是可以便以我的C++程序呢?如果学习VC.NET,是不是一定要学.NET呢?很多人就是在.NET的庞大面前失去了转变的信心,仍然使用着VC6,仍然受着使用STL时成百上千个warning的困扰,VC6转向VC7,真的这么难吗?

你也许看到了,我没有像大多数人那样使用VC.NET这个名称,而是使用的VC7,虽然MS是这样称呼的,因为我觉得这样称有歧义,也许我应当先澄清几个概念:

.NET是微软提供的一个Framework,对于这个Framework的特征等等,我不敢多说,精通.NET的大虾们可以告诉我。
VS.NET即Visual Studio.NET,是MS提供的一个IDE,在其中可以编辑C++、C#、Basic等语言的源程序和编译,其实其中的
.NET好像一个表示,并不一定是一定要使用.NET。
C++是一门语言,你可以用BCB写,可以用VC6的IDE写,可以用VS.NET写,甚至可以用记事本写,这些都没有关系,因为它
只是一门语言,而上面说的都是工具。
VC7是VS.NET附带的C++的编译器(我先这样称呼,没有任何官方这么说),是VC6编译器的升级版本——当然它可以编译
带有.NET托管代码的C++源程序,那是另一回事——支持C++的标尊并带有MS提供的功能强大的古老的Windows的Framework MFC。
VC.NET是使用了.NET Framework的C++,是C++的一个变种,是MS对C++的一种扩充,出现了#using,__gc,__property等新的
关键字,使C++可以使用.NET Framework;也可以理解成是一个编译器,是把C++编译出的二进制文件架构在.NET Framework上的一个特定的C++编译器。
还有一个就是我们对于VC6的称呼,VC6是一个IDE是不是?是的。VC6是一个编译器是不是?也是的。VC6是C++的一个带有MFC类库的版本,是不是?也可以这样认为。

所以你明白我为什么使用VC7而不使用VC.NET了?

这样来看,我们可以从几个层次上理解VC6到VC7的转变,这几层层层递进:

IDE和与C++语言严格程度(或者说编译器)层面上:这个转变应当说是VC6到VS.NET的转变,仅仅是如何适应新的IDE和一些细微的编译区别,不应该有任何的难度。
MFC层面上:这个转变其实也没有很大的障碍,由于MFC的向下兼容性,这一层面的障碍仅仅是上一层面的细微的编译器差别引起的小小改动和对MFC与IDE的集成方式的适应,例如ClassWizard的消失等等,这些仍然很容易解决。
平台层面:这个转变就是大家最担心的了,由于在VC6下只有一个Framework可以使用,就是MFC(或者你认为ATL也是一个Framework),或者你就要用SDK裸调API,其实他们最终还是Win32的平台;但是在VS.NET开发环境下,可以使用SDK,可以用MFC,最重要的是可以使用一个新的平台就是.NET Framework。如果你决定从Win32转变到.NET Framework,那么无疑这将是一个浩大的工程,可能这是大家望而却步的原因。

那么,你担心的是哪个层次?

从我在CSDN和BBS上看到的情况来看,很多人不清楚这三层转变的区别,于是想着进行前两个层面的转变却被第三层面吓倒,进而谈.NET色变,对.NET望而却步,守着VC6继续做这一切。

其实这也怪不得他们,没有用过VS.NET怎么也不可能明白它与VC6IDE的差别的,所以不如今天用我的精力把它挑明,免得再有人受苦 ^_^。

说这么多,其实就是一个意思,不要以为名字带个.NET就是.NET,使用Visual Studio .NET一样可以写出驱动程序,一样可以像你在VC6下面那样写C++程序,用STL库(而且.NET对STL的支持更好啊),一样可以用你的MFC,一样可以写出你想写的东西……一切只要一个前提,只要你不用#using,只要不用类似__gc,__property等VC7扩展的.NET关键字,那么写出的程序与.NET没有任何的关系,管它什么.NET。

既然我们使用VC6转向VS.NET的顾虑在.NET框架上,而一旦将VC7和.NET框架独立开来看,还有什么顾虑呢?这个转向本该和VC5转向VC6一样自然的,都怪微软,大肆宣传.NET,导致.NET滥用,到处都是这个东西,于是大家无所适从……

更何况VS.NET拥有比VC6更强大和好用的IDE,试试在VS.NET如何下断点,看看VS.NET的类视图,大胆的装上VS.NET,安装时只留下Visual C++,400M硬盘而已,然后鼠标动动,就可以把它的界面打造的和你熟悉的界面一样,然后跑上一杯茶,enjoy the new IDE and enjoy the new compiler!

//在下一介书生,第一次在自己的Blog上写这么多的字,不敢认为自己是大虾,但是实在不愿看到有人迷茫。
//其实我也没有用太长时间的VS.NET,如有错误,请指出并多多包涵。

vc6最后一个版本php下载

大家可以参考这个文章 http://bbs.csdn.net/topics/370107885 然后,需要说明的是,下载到的是bin文件,如果想要下载他的yuan...
  • u012607841
  • u012607841
  • 2014-10-19 17:38:33
  • 887

树的三种存储结构

6.2树的定义 之前我们一直在谈的是一对一的线性结构,可现实中,还有很多一对多的情况需要处理,所以我们需要研究这种一对多的数据结构----"树",考虑它的各种特性,来解决我们在编程中碰到的相关问题。...
  • smile_from_2015
  • smile_from_2015
  • 2017-03-19 19:46:38
  • 3389

graphics+winbgi

  • 2012年05月06日 23:27
  • 26KB
  • 下载

完全二叉树 满二叉树

概念 结点的层次(Level)从根开始定义,根为第一层,根的孩子为第二层。 二叉树的高度:树中结点的最大层次称为树的深度(Depth)或高度。 数据结构中,树的度是什么?  它是树内各结点的度的...
  • bigtree_3721
  • bigtree_3721
  • 2016-05-15 12:03:32
  • 8240

街机模拟器 MAME源码

  • 2014年09月26日 11:20
  • 11.52MB
  • 下载

MAME: 如何进行源代码级的IDE调试?

http://www.cnblogs.com/neoragex2002/articles/740643.htmlA.Mingw32环境的MAME源代码级IDE调试Insight debugger是Re...
  • wbcuc
  • wbcuc
  • 2008-06-10 10:10:00
  • 2561

反汇编器源码剖析

之前我们有对一汇编器进行源码剖析,详见《汇编器源码剖析》,并且《实现一个汇编器》。本文,我们继续之前的工作,对反汇编器进行源码剖析,之后我们会根据反汇编器的实现原理,实现一个自己版本的反汇编器。本文剖...
  • judyge
  • judyge
  • 2014-11-16 11:56:19
  • 589

打造你自己的 MAME 模拟器。

在这之前我们必须要准备好一些必备的东西 1.wingw-gcc.exe 点击下载 2.wingwover.zip 点击下载 3.mame源代码mame081s.zip 点击下载 ...
  • Sun_Jianhua
  • Sun_Jianhua
  • 2007-03-15 16:42:00
  • 6687

从零开始_学_数据结构(四)——查找算法、索引、二叉排序树

查找算法   基本概念: (1)关键字:假如有结构 struct Node //一个结点,存储数据和指针 { DATA data; //数据属性,用于存储数据 int key; ...
  • qq20004604
  • qq20004604
  • 2016-03-25 16:47:09
  • 1586

树的高度和深度的区别

对于树的基本概念上理解,对于才接触数据结构的人来说,树的高度和深度是一个容易混淆的知识点,现解释如下: 1.高度 对于高度的理解,我们不管他数据结构什么什么知识,就拿楼房来说,假如一个人提问:楼房...
  • Fanpei_moukoy
  • Fanpei_moukoy
  • 2014-04-16 10:47:36
  • 33565
收藏助手
不良信息举报
您举报文章:VC6 or VC7,让转变不再迷茫
举报原因:
原因补充:

(最多只允许输入30个字)