十年MFC经历认识的Microsoft技术

MFCPlus 版主 2005-03-08 03:59:26

一、初识MFC
我最初知道MFC大概是在1993年,那个时候Visual C++还没面世,当时Microsoft的C++编译器还很弱,官方的名字是Microsoft C/C++ 7.0,MFC的版本是1.0,几乎没有引起什么反响,那个时期最好的C++开发环境是Borland C++ 3.1,其实,大概是1992年11月份,一个偶然的机会,我领略到Borland公司的厉害,记不得在什么地方,我看到一个绝妙的集成开发环境,即Turbo C++ 3.0 for Windows,这是我记忆中第一个真正的Windows环境下的C++集成开发环境,那种激动的感觉至今仍记忆犹新,不客气的说,当时至少在C++方面,Microsoft与Borland不是一个水平的,Borland明显的要高于Microsoft ,Borland的产品在技术上给我留下深刻的印象。那个时候Microsoft最好的开发平台是Visual Basic 3.0,而Borland的Delphi正处于开发阶段(Delphi 的代码名称是:“VB Killer”)……,想起这些十几年前的往事,我不禁感慨万千。
十几年来,我用过许多开发环境,关于Visual Basic,我用过最早的DOS版本,Windows版的Visual Basic我基本上全都用过,至今我还记得每个版本的VB安装盘磁盘的盘数。同样,我用过各个版本的Delphi,特别是Delphi 2.0,给我留下极好的印象。Delphi提供真正编译的可视化开发环境,那个时候(1994年左右),Delphi就可以开发带有GUI的动态链接库,你可以想象,在Microsoft Access 2.0的应用程序中可以加载一个Delphi Form并进行程序交互,那种感觉真是棒极了。
Borland C++是我心中无法抹掉的遗憾,从Turbo C到C++ Builder,我深刻的体验到Borland的辉煌和无奈,Delphi从VB Killer走到为VB护航(你可以想象Delphi一步到位的ActiveX 控件开发技术有多牛,早期的VB有多土,早期的VB不能开发动态链接库,因此无法开发ActiveX 控件,想起来真令人嘘唏不已),Borland C++的命运也是不济。Borland C++ 3.1的辉煌永远不再了,十几年的开发工作中,我在C++上投入了大量的精力,Borland C++曾经给我带来无数的激动,然而这个经典的名字却在与Microsoft的竞争中渐渐的流逝了……。
MFC4.0的出现,使得人们感觉Microsoft在C++方面赶上来了,这一版的MFC是Win95推出后出现在Visual C++ 4中(Microsoft没有VC 3,VC4以前的版本是2.2、2.1、2.0、1.51、1.5、1.0)。也许是对Borland C++的潜意识的失望,我不知不觉的接受了MFC,VC 4.2推出时,我通过正常渠道购买了这个编译器的企业版。
二、关于Microsoft
关于Microsoft,有无数的人要对这个名字叙说感觉,这个令人讨厌的名字!不知道是喜欢还是憎恶,你是程序员,你的心思可能就要因Microsoft的存在而动,即使你用Linux,你可能也是因为Microsoft技术因素。多少年来,这个名字每天都出现在你、我、他的面前,因为你不得不面对Windows的存在,可是你憎恨这个名字吗?你讨厌这个名字吗?我不知道是否已经对这个名字麻木了。1998年我个人订了Microsoft MSDN Universal 版,我开始比较全面接触这个公司的开发技术,你可以想象,1998年当你面对上百张技术光盘的时候,你就知道什么叫做“厚度”,当我们有时说出“赶上”或 “达到”Microsoft某些产品的水平的时候,可能我们缺乏对这个公司“厚度”的真实了解。进入MSDN,我感觉Microsoft简直不是一个“公司”,而是(或者正在形成)一个“社会”。当时著名的技术网站http://www.codeguru.com全部的技术资料是可下载的(那个时候http://www.codeguru.com提供整个网站内容下载服务,大约3M左右),大名鼎鼎的www.codeproject.com还不存在。一开始,我始终潜意识在技术上对比Microsoft与Borland,应当说技术上Borland不比Microsoft弱,即使现在也有人持有这个看法,可是为什么Borland走到今天这个地步?而Microsoft却如日中天?若干年前,这两个公司竞争何等激烈,而现在却是另一番“合作”的景象?可能很多人想过,如果Borland不存在,对Microsoft不是更有力吗?其实Microsoft可能精通中国历史,读过《三国》、十分了解战国时期的中国,其实Borland形式上的存在,对Microsoft是十分有利的,至少形式上还有竞争对手,而事实上Borland已经受控于Microsoft(Microsoft是Borland的大股东)。你可以看到一些微妙的现象:Borland为Microsoft提供了大量的人才,其中包括Delphi总设计师以及Borland C++编译器的核心成员;同时也为Microsoft .NET提供强有力的护航服务(看看C# Builder、Delphi .NET)。1998年Microsoft 的COM技术基本已经成熟,这个技术使人感到震撼,当时Microsoft的对手们提出“OpenDoc”用于对抗“COM”,你看看“OpenDoc”阵营的几个成员:IBM、Apple、Borland、Novell,你会感到这个阵营十分豪华、强大。但结果却差强人意,“OpenDoc”无疾而终,而“COM”依然生机勃勃。
有人说“COM”没落了,那么就太不了解Microsoft了。在与“OpenDoc”的竞争中,“COM”是个彻底的胜利者,在与“Java”的竞争中,“COM”成功的进化了,在这个过程中Microsoft体现了强大的吸收能力、以及无法想象的韧劲。.NET只不过是COM的“别名”而已。对于一个经验丰富的C++程序员而言,.NET就是COM的进化,而Microsoft内部.NET就是“COM 3.0”(OLE2就是COM 2.0),而“CLR”就是一个不择不扣的COM对象。曾经有人问我,既然牛顿时代就奠定了基础(想想著名的牛顿-莱布尼茨公式),几百年后的今天,数学还研究“微积分”吗?回答当然是依然在研究!“微积分”早期是针对函数的,现代“微积分”是针对“流形(Manifold)、纤维丛(Fiber Bundle)”的,概念深奥了,可是基本思想不变,只是“微积分”的思想得到合理的延拓与进化,你了解Microsoft吗?Microsoft Research有一批超一流的数学家在为Microsoft工作,其中一些是斐尔兹奖的得主,Microsoft正在实现如同“微积分”进化到“微分流形”一样将“COM”进化到“.NET”。从科学概念角度上分析COM与Java,可能COM更全面、精确,从实现的成熟度上Java可能更成熟,可是你看到,Microsoft正在不紧不慢的追赶。Microsoft令人联想起战国时期的强秦。
战国时期的秦国,采取“远交近攻”“抚弱掠强”等措施傲视六国,今天的Microsoft也是这样,VB1.0时,Microsoft推出“VBX”控件技术,众多的小公司得以生存,Microsoft自己不开发“VBX”组件,同样“VBX”进化为“OCX”时,Microsoft并不十分强大,可是这种试探得到众多小公司的响应。1997年Microsoft Office 97、1998年Microsoft推出Visual Studio 6.0,给众多中、小公司提供了生存、发展的机会,例如Microsoft Office 97中集成了Visual Basic for Application 5.0,这项技术使得几百家软件开发商与Microsoft签署了VBA技术许可协议,即使AutoDesk这样的公司都与Microsoft签署了这个协议,这个协议使得每个集成VBA的产品的给个用户许可为Microsoft付40$的许可费,如果你了解VSIP(Visual Studio Integration Protocol)协议,以及有多少公司签订了VSIP协议,你就真正感觉到Microsoft的可怕;Microsoft Office 97、Visual Studio 6.0的用户界面十分漂亮,为什么Microsoft自己的开发工具不提供类似的软件组件?你看到众多第三方的Microsoft盟友纷纷推出自己的界面库以模仿Microsoft,他们不会反对Microsoft,因为他们已经形成了使得Microsoft以及这些公司得以生存的生态圈。
Microsoft的技术储备有多少,Microsoft之外的人很难说清楚,Microsoft中国公司也未必了解多少,1999年WTL类库刚刚出现的时候,人们就希望WTL能得到官方的支持,或授权给一个Microsoft之外的一个公司(你能想象出Borland C++ 5.0内置的ActiveX开发机制是基于Microsoft ATL类库吗?),直到今天,WTL依然如故,我们完全相信,如果Microsoft强力推广WTL,WTL完全可以流行,可是Microsoft不缺类似的技术,类似的类库还有BCL(Base Control Library,一个用于开发轻量级ActiveX控件的类库),Microsoft还有一个基于ATL的类库,这个类库用于开发ActiveX Designer,ActiveX Designer是绝大多数程序员不了解得一类对象,如果你熟悉Office开发,你知道Office VBA 中有一类对象,即Form2,此外VB6.0 中的报表设计器(以及著名的Active Reporter),都属于此类对象,用这个类库,你可以为VB6.0以及集成VBA的系统提供定制化的可视化设计机制等等,如今ActiveX Designer已经演化为集成于Visual Studio .NET中的设计器。(未完)
...全文
17428 536 打赏 收藏 举报
写回复
536 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
机智的呆呆 2010-06-03
[Quote=引用 538 楼 tonymiller 的回复:]
5年前的帖子今天才有幸拜读。看完了头晕目眩,五体投地。
中国真的是很需要楼主这样内外兼修勤于思考的人才。
受教了。
[/Quote]
同感,发现要学的东西太多了~~~
5年前的csdn氛围真好啊~~
  • 打赏
  • 举报
回复
tonymiller 2010-06-02
5年前的帖子今天才有幸拜读。看完了头晕目眩,五体投地。
中国真的是很需要楼主这样内外兼修勤于思考的人才。
受教了。
  • 打赏
  • 举报
回复
ywyw 2005-09-01
佩服楼主的思想深度
  • 打赏
  • 举报
回复
snakebite2008 2005-09-01
楼主的公司在北京的地址?
  • 打赏
  • 举报
回复
ronglisheng 2005-09-01
我也是不原意老是看到什么“顶”,“up”,“mark”的,在座的可能都是前辈。晚辈觉得有很多要学的,唯独不能这样“顶”,“up”,“mark”的。觉得帖子好,就该尊重楼主,说点像样的东西。前面提到了Hook,的确是个很有用的东西。并没有那么恶劣。我认为技术是不分贵贱的。Hook可以用很多自动化的东西上面。MS和Apple的技术也是不分贵贱的,争执他们的长短对中国的IT有什么作用?!
  • 打赏
  • 举报
回复
Sime507 2005-08-26
mark
  • 打赏
  • 举报
回复
zhxk 2005-08-25
顶顶,贴下留名,祝各位好运!
  • 打赏
  • 举报
回复
lovevsnet 2005-08-17
楼主写出了我们程序员的心声,我是一名业余的编程爱好者,从自学BORAND C++BUILDER到放弃BC,转入C#的自学,在这学习过程中我感触最深的是,我们的软件水平一天天落后人家,有人甚至拿人家的代码作为维护自己“专家”地位的资本,读懂人家的代码就以为自己很厉害了,而且有的”专家“还不愿意共享别人的源码,国人的悲哀啊,阿Q的精神胜利法让我们的专家学会了,不知道楼主的文章能否唤醒“无知”的专家们,先学习microsoft,别光喊口号!
  • 打赏
  • 举报
回复
threenewbee 2005-08-12
学习
  • 打赏
  • 举报
回复
mosquit 2005-08-12
关注~~~
学习~~~
  • 打赏
  • 举报
回复
宾子寻月人 2005-08-12
无语!
学习中!!!
  • 打赏
  • 举报
回复
qaz1984 2005-08-12
up
  • 打赏
  • 举报
回复
kkk3k3k 2005-08-12
大清早起来,还没有刷牙,看到好文感慨良多

技术不代表什么? 只是谋生的手段而已!和拉面师父的拉面技术没多大区别!别人喜欢什么,你就拉什么
就是这样

其实,什么赚钱学什么,什么方便用什么 (别骂我) 别那么执着,

所谓"中国软件业之发展",实在是个遥远的话题,你我都看不到,即时有千千万万个有热血的青年
去耗费无数的精力时间,也是白打.中国的生存原则是:关系胜过一起,技术只是火腿上的草绳-带买的

日子还要过,代码还要写,多关心如何讨好你的客户比谈技术大战实际的多,赚到钱的时候才有资格说话 . 陈天桥,害残了如此多的人,但只要有钱,也可以冠冕堂皇的说,我不懂技术只是对技术敏感而已么

  • 打赏
  • 举报
回复
chjc2003 2005-08-12
the load is under your foot
haha
  • 打赏
  • 举报
回复
healer_kx 2005-08-12
自感何其渺小,学习,自勉。
PS:接分我看是接不到了。
  • 打赏
  • 举报
回复
gaowg 2005-08-12
看到凌晨1点半,受益非浅.
  • 打赏
  • 举报
回复
ycnet2005 2005-08-11
毛好!
  • 打赏
  • 举报
回复
echoxue 2005-08-11
MARK
  • 打赏
  • 举报
回复
NewWinBoy 2005-08-11
、关于梯子的比喻
对于一直生活在windows中的开发者来言,作者的比喻不乏正确,不过放眼看来,LInux世界,Java世界,开源世界里,有太多让你眼球一亮的东西,一直生活在windows的世界里的人,普遍“营养不良”

微软已经不是创新,活力,激情的场所了,相信很多人都能体会。这已经像毒药在慢慢腐蚀微软。

2、关于对微软的敌视态度
有的女人很漂亮,你愿意把一切都给他,还心甘情愿;有个的女人也很漂亮,但是你给她一点东西,你都觉得不舒服

3、微软现在仍然是强势的,原因在于巨大的市场惯性。但这不是永恒的。计算机历史的发展,从大型机的时代发展到了互联网的时代,现在的瘦客户端,永远不能成为主流,发展趋势仍然是越来越强的个体。Linux的成功已经反映出来了,没有出色的程序员,即使开源,也不能把LInux带向成功。技术永远是掌握在程序员手中的,而不是在公司的手中。聪明的公司懂得利用这些,通过商业手段不可能获得的巨大技术资源。当然微软在这里的角色不够光彩,只不过一个躲在墙角里的抄袭者。
互联网的普及扩大了大家的视野,也让大家看到了windows之外的广阔世界,所以更多的人开始不屑于微软。
当年那个创新,热情的小比尔,也成老人了,随着时间的流逝,他的创新和热情也被消磨殆尽。。。。

根据事物发展的规律,你的死因为你的生,推动你成功的因素,也是导致你灭亡的因素。要想逃脱出这一结局,变和多元化。目前看来,最不容易死亡的公司,只有一家,起码在我的视野里,IBM。


多个出色的学生在一起必然就有个比较差得,正确,但是怎么推出多个出色的菜在一起就是很差的一桌菜?

释迦牟尼正觉前,是个普通人,吃肉,他一个国王,不可能不近女色吧?正觉后自然的就不吃肉了。但是现在佛教,肉,色是两戒,吃肉近女色就不能得道。这种方法是规导普通大众的好方法,但是我辈技术人员不能如此愚钝,也认为“吃肉,近女色就不能得道”。
断臂的维纳斯,是因为有个太出色的手,所以断掉。悲伤的结局总是被人记忆深刻,结果现在就成了,某演员只要在结局中死了,就不是花瓶了的说法,可笑。

高处得识,低处入手,从这个角度理解的"眼高手低”,才是我辈技术人员正道。
  • 打赏
  • 举报
回复
hyg2008 2005-08-08
mark
  • 打赏
  • 举报
回复
加载更多回复
发帖
VC/MFC
加入

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
申请成为版主
帖子事件
创建了帖子
2005-03-08 03:59
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……