(DELPHI优缺点.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(DELPHI优缺点

推荐你一篇不错的文章,或许对你有些帮助。 VC和Delphi作为开发平台,很重要的一点就是提供了一个无所不包的应用框架:VC的MFC和Delphi的VCL。MFC是用C++写的,VCL是用Object Pascal写的。当然,我们都知道,C++的使用范围比Object Pascal广得多,移植性也好得多。这本来是优点,但很有意思的是,正因为如此,微软写MFC时必须考虑最大限度减少对语言本身的改动,而把功夫下在源代码级,以便能尽可能支持ANSI等标准,结果导致MFC的封装复杂而不直观。(尤其是它对消息的封装,下文还会提到)。太多的宏定义和含义模糊且自动生成、不得改动的注释使MFC乃至VC让很多新手望而生畏,不敢下水深入学习。而Object Pascal几乎是Inprise专用的,不必考虑标准问题,因此Inprise写VCL时就把全部精力放在了结构与性能上,结果语言与框架的磨合程度非常好。VCL框架的结构清晰,VCL代码的可读性非常好。许多人说Delphi比较容易上手,也是这个缘故。天下没有白吃的午餐。你要工业标准吗?你要可移植性吗(关于可移植性和兼容性,下文会详细比较)?那么请面对MFC的天书级代码吧。 编译和连接:The Need For Speed 不同的语言带来的另一个不同是,编译和连接的速度的不同,以及执行速度的不同。Delphi的编译和连接速度,毫不夸张地说,比VC快几十倍。即使把VC的Incremental Link选项打开,Delphi的编译和连接速度仍比VC快好几倍。并不是说微软的编译器不行,这是由C++的复杂性决定的。模板的处理、预处理和宏的展开都是很费时的。前文不是提到Object Pascal没有模板、预处理和宏吗?这本来是缺点,但带来的一个好处就是编译速度极快。至于编译完的二进制代码,在打开相同的优化选项的情况下,Delphi和VC执行速度并没有太大的差别。 为了克服编译的速度问题,C++编译器一般需要增强的连接器和预处理机制。但是预处理机制仍然存在若干问题:1)程序调试的断点行可能和代码行不同;2)没有将最新的代码信息综合进去;3)容易产生错误的逻辑;4)因为读错文件头而很容易产生类似Unexpected End of File的错误。 两个编译器有个共同点是都能识别无用的死代码,比如一个没有用的函数等等。编译后的程序将不包含这些多余的信息。Delphi在这方面作得更加出色。它可以让你在编辑器中可视化地提示出那行代码是活的、那行代码是死的。这样你就能整理出最精简的代码。Delphi在编译后将在左边显示一个小蓝点表示这行代码是活的。Visual C++做不到这点。 Delphi编译后可执行文件至少有200K(如果不使用VCL,仅仅使用WinAPI,文件的大小将大大缩小)但是Visual C++编程使用MFC编译后的可执行文件通常只有几十K,主要是因为微软已经将系统运行库包含在Windows系统了(Borland公司曾经和微软协商这个接口,但是微软利用操作系统的优势不愿意公开)。同样道理,使用BDE开发的的数据库程序必须附带3-5M的额外系统文件,也是非常不协调的。 非常有趣的是,Delphi能够使用由C++ Builder创建的的OBJ文件,但是使用上受很大的局限性。 最后,Visual C++的编译和连接时的错误信息比Delphi要详细和具体的多。特别是使用ATL开发更加如此。 应用框架:MFC?有KFC流行吗? 应用程序框架(Application Frame),有时也称为对象框架。Visual C++采用的框架是MFC。MFC不仅仅是人们通常理解的一个类库(同样,Delphi的VCL也不仅仅是一个控件库,尽管它的名字叫可视控件库)。你如果选择了MFC,也就选择了一种程序结构,一种编程风格。MFC早在Windows 3.x的时代就出现了,那时的Visual C++还是16位的。经过这些年的不断补充和完善,MFC已经十分成熟。但由于原型出现得比较早,MFC相比于VCL落后了一个时代。尽管微软对MFC的更新没有停止,我也经常读到只要Windows不过时,MFC就不会过时之类观点的文章,但就象Inprise(原Borland)的OWL框架的淡出一样,MFC的淡出也是早晚的事。其实MFC是和OWL同一个时代的产物。OWL已经不在了,MFC怎能不居安思危呢?如果MFC青春永驻,微软的开发人员也不会私自开发出基于ATL的WTL呀。当然,WTL的地位不能和MFC比,它并不是微软官方支持的框架,封装的功能也相当有限。但至少也反衬出了MFC存在的不足。 我们以为,最能体现一个应用程序框架的先进性的是它的委托模型,即对Windows消

文档评论(0)

64348377 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档