CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

问个很简单的问题,微软的mfc是不是完全按标准的c++写的?

楼主coolstar(酷星)2001-12-13 11:36:15 在 VC/MFC / 基础类 提问

如题  
  因为我看到有篇文章中提到:  
   
    MFC。从理论上来讲,MFC也不是专用于Visual   C++,Borland   C++,C++Builder和Symantec   C++同样可以处理MFC。  
   
  所以我想问问大家 问题点数:300、回复次数:19Top

1 楼turongguo(无痕雨)回复于 2001-12-13 11:42:45 得分 20

不是完全按照标准的C++写的。微软有时的提议非常好,可是实现的时候受商业利润的驱动变成了另外一回事。关于这点,你可以看程序员杂志的第10期的有一篇评论。Top

2 楼coolstar(酷星)回复于 2001-12-13 11:46:39 得分 0

 
  同样的borland公司的类库,vc就无法编译,为什么?  
  Top

3 楼ljnow0(游荡中的人)回复于 2001-12-13 11:53:55 得分 20

在最早的mfc出现的时候,标准c++还没有出现,所以有一些是mfc特有的。  
  不过,微软认为自己够牛,所以一般不太理会那些别人的标准Top

4 楼turongguo(无痕雨)回复于 2001-12-13 12:04:08 得分 0

这是很正常的。BC中的类库和VC中的类库不同(类名,属性,方法),类的结构图也不同。还包括实现类库的一系列机制以及连接的动态链接库。例如在VC类库中有Cobject类,而BC类库中无Cobject类。而你程序中的类一般都派生自Cobject类,如何调试过Top

5 楼hujun614(向2个或2个以上的板块都至少是二星用户的朋友学习)回复于 2001-12-13 13:29:16 得分 20

其实每种C++开发工具都只是在一定程度上尊循C++标准,总有地方由于不同的原因,不能完全付合C++标准的。Top

6 楼Kummer(Kummer)回复于 2001-12-13 14:36:08 得分 20

我认为微软的MFC是不是按照C++标准写的,  
  这是我从  
  我的回忆和有趣的故事---C/C++圣战篇(上)   by     李维(台湾)  方圆 荐   
  摘录下的一段(很有意思的一篇文章,讲BC和VC的编译器之战)  
   
  在1993年初Symantec和Watcom分别和Microsoft签约License   MFC做为它们的开发工具的C/C++   Framework。  
  至此大势以定,在C/C++   Framework的市场已经形成三家夹击一家的形式。当时许多人便预估Borland将成为输  
  家,因为市场已经成为一面倒,MFC看起来已经是胜券在握了。在当时於Borland的内部也展开了激烈的辩论,  
  讨论是否也要License   MFC做为C/C++的Framework,停止继续开发OWL。不过后来Borland还是决定继续开发OWL,  
  而不使用MFC,因为Borland的C/C++技术小组认为MFC不论是在架构上或是设计上都比不上OWL。而且由於Visual    
  C/C++在当时对於C/C++的标准支援不如Borland   C/C++,因此在MFC内部使用了大量的Macro以及不标准的语法,  
  因此如果Borland   C/C++要使用MFC,那么还需要修改编译器来编译MFC。  
   
  Top

7 楼coolstar(酷星)回复于 2001-12-13 14:41:08 得分 0

 
  bc可以编译mfc,为什么vc编译不了OWL   ?  
   
  Top

8 楼FatCatHu()回复于 2001-12-13 14:58:51 得分 20

因为Borland的C++对C++标准的"厂商扩展"同样有趣。Top

9 楼whool(喔)回复于 2001-12-13 15:15:11 得分 20

不可能完全按照标准C++写,他隐藏了很多自己的东西。Top

10 楼TsuLeon()回复于 2001-12-14 09:59:15 得分 0

老兄,这根本不是什么标准不标准的问题,纯粹是商业上的考虑。  
  微软巴不得BCB死了算了,怎么还会跑去支持什么VCL、OWL?  
  宝蓝支持MFC不就给自己多了一条生路吗?  
  这种事又不是第一次了,而且还不限于开发软件领域。  
  感觉GCC   3.0以后的版本对标准C++支持的还不错,哪位大虾有更好的别忘了通知小弟一声啊  
  Top

11 楼ydogg(灰毛兔频频)回复于 2001-12-14 10:08:18 得分 20

BCB支持mfcTop

12 楼finalwish(gogo)回复于 2001-12-14 10:24:00 得分 20

      其实在微软的系统中有时用C++完全不能解决问题,那么这时候微软会修改其中的C++的一些东西。象COM就不能利用C++的类的继承来实现COM的继承,所以微软就想出了一个叫聚合等的东西来大概(注意是大概)地实现这个功能。这就是微软的风格,做不出来---改!  
   
  >>因为我看到有篇文章中提到:  
  >>MFC。从理论上来讲,MFC也不是专用于Visual   C++,Borland   C++,C++Builder和Symantec   >>C++同样可以处理MFC。  
  对于这个我不以为然。C++只是一种语言,象C一样只是说明它必须遵循一定的编程规则。但如果我要扩充C++的话,我会开发我的库,或者是我的类,你只有得到我的类的信息(象头文件,接口等你才可以用我的库)。你认为微软会把他的类信息告诉给别人吗?所以Borland   C++,C++Builder等不能处理MFC也是情理之中的  
   
  Top

13 楼WindRiver(bigbird)回复于 2001-12-14 10:44:54 得分 20

to   finalwish(gogo):  
  不知道,就别瞎说。Top

14 楼ygangy(还是多去海边走走舒服)回复于 2001-12-14 10:59:51 得分 20

我曾经看到过一些文章说过VC中的C++不一定完全遵循C++标准,而且至今为止还没有任何一家公司去完全遵循C++标准。所以我觉得我们不应去理会这些问题,MFC在一定程度上可用于BCB之类的但又不能被完全支持是理所当然的Top

15 楼coolstar(酷星)回复于 2001-12-14 11:14:43 得分 0

to   finalwish(gogo):  
   
  你认为微软会把他的类信息告诉给别人吗?所以Borland   C++,C++Builder等不能处理MFC也是情理之中的  
   
  好像可以吧Top

16 楼finalwish(gogo)回复于 2001-12-16 19:06:44 得分 0

哈哈,听听大家的高见   :-)  
  Top

17 楼flyingbugs(网际.神经病.心情很遭)回复于 2001-12-16 19:28:14 得分 50

不懂就不要乱说!!!!!!!!!!!!!!!!!!!  
   
   
  MFC的确是按照标准的C++实现的!!!!!!!!  
  定义宏   在标准C++中也是允许和很常见的!!!!  
   
  MFC只是有很多实现方法没有采用C++的机制!!如:按照C++,虚拟函数是实现消息映射的好方法,但由于虚拟函数实现需要占用较大资源,所以ms采用了利用macro来实现消息映射表,这样方便快捷,虽然,看起来好像不符合C++,但MFC的确没有添加任何非C++语法!!  
  再如:MFC中实现串化,采用的也是marco,但也没有超出任何C++的语法!!  
  所以说,MFC还是符合C++标准的!!    
   
  还有,BC以前准备是采用的虚拟函数实现消息映射的,但效率太低,灵活性也不如人意。后来采用了类似MFC的消息映射marco。  
  bcb就完全可以说不是C++了!它只是一个有着和C++相似的语法的dehpi。  
   
  有兴趣的话,去看看MFC的源代码!!!!  
  不要在这里争来争去的!!   Top

18 楼coolstar(酷星)回复于 2001-12-17 09:49:39 得分 0

哈哈,flyingbugs(网际)说的不错啊Top

19 楼kamphkb(依栏望海)回复于 2001-12-18 21:39:28 得分 50

To   flyingbugs(网际):  
  完全赞成,特别是:C++相似的语法的dehpi。俺怎么没想到这个说法哪?bcb居然擅自添加  
  关键字,vc当然不可能兼容之了。但mfc就反而可以被bcb编译,这正是mfc比较“标准”。  
  也因为mfc比较标准,编程人员不但心mfc过时后怎么办,这是mfc的生命力长久的原因吧。  
  像自己的类包装程度达到和mfc差不多的级别就比较合适,够用,性能消耗不大。ms的出  
  发点是轻快的解决问题,boland要的是优雅。不对之处请指正。Top

相关问题

  • C#是否能用MFC标准类库
  • C++标准库.
  • 标准C
  • 标准C++ !!!!
  • c标准ISO9899
  • 是使用标准C++类库还是使用MFC类库?
  • 急求C/C++标准库
  • 在标准 C 中……
  • 在标准 C 中……
  • C(美国标准)

关键词

  • c++
  • c++builder
  • c/c++
  • visual c++
  • mfc
  • 微软
  • 语法
  • borland
  • 映射
  • bcb

得分解答快速导航

  • 帖主:coolstar
  • turongguo
  • ljnow0
  • hujun614
  • Kummer
  • FatCatHu
  • whool
  • ydogg
  • finalwish
  • WindRiver
  • ygangy
  • flyingbugs
  • kamphkb

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo