精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>编辑、编译、调试与发行>>BCB3.0简介(2)

主题:BCB3.0简介(2)
发信人: huangguanyi()
整理人: wenbobo(2002-12-24 09:19:54), 站内信件

     # BCB 3.0 在除错功能的大幅领先 

    对于C/C++的使用者而言,除错是平日工作中的少不了的事情.所以一个C/C++
编译 
器的除错功能就直接影响了生产力.在BCB 3.0中Borland对于 BCB3.0除错功能的
强化 
会让Delphi3.0的使用者羡慕的不得了.BCB3.0除了 拥有Delphi3.0对于双数检视
的工 
具视窗,加快了检视字串变数的之外,更 加入了强劲的模组检视功能.这个模组检
视器 
可以让你巨细靡遗的观看应 用程序使用权的所有DLL以及专案中每一支程序的所
有的 
方法.在中断点之 处启动模组检视器检查应用程序.你可以看到模组检视器显示了
多么 
详细的资讯. 
    更令人惊讶的是,BCB 3.0在应用程序执行时期居然能够显示出类似物件检视
器的 
视窗,让你检查一个VCL元件的所有资讯.包括特性值,方法和事件处 理函数.这个
除错 
功能实在太棒了,因为有了它之后,你就可以掌握执行时期 VCL元件所有的变化. 

    此外BCB 3.0也包括了一个Event Log可以让检视应用程序执行时发生的事件
.这 
些新的除错功能都是Delphi3.0所没有的低层除错能力.除了除错功能 之外,BCB3
.0也 
允许程序员对于编译器更好的控制能力.图形是BCB 3.0中新的 高等编译器选项功
能. 
你可以看到BCB和一往的BC++一样允许你更进一步的控制 产生的程序码品质.请注
意在 
这些选项中有一项MFC Compatibility. 当你需要 在BCB3.0中编译MFC的程序时,
你必 
须选择这个选项,因为MFC使用了许多不正确 而且奇怪的C/C++语法,为了要让BCB
的编 
译器能够顺利的编译MFC程序,这个选 项可以让编译器不致产生严重的错误. 
  
     #制作ActiveX/N-Tier远程服务器的技术差异 

    Delphi 3.0是PC级的工具中第一个真正可以开发N-Tier的开发工具. 另外 

Delphi3.0也是所有Borland的工具中支援COM/ActiveX最为完整的工 具,但是现在
这个 
局面将被BCB 3.0打破.因为Borland现在也给予了C/C++ 使用权者相同的强大功能
,让 
C/C++的程序员也可以设计出分散式物件计算 应用程序.此外BCB 3.0也可以让你
一个 
步骤便制作出ActiveX元件.但是在 产生分散式物件和ActiveX元件时,Delphi3.0
和 
BCB3.0差别最大的地方.下 面列出这两个产品使用的引擎. 
  
     Delphi 3.0 ----DAX (Delphi ActiveX Engine) 
     Borland C++ Builder 3.0 ----ATL (ActiveX Template Library) 
  
    它们使用的引擎不同的原因除了Object Pascal不支持样版(template) 外,另
外的 
原因便是让BCB产生的ActiveX元件和DCOM服务器能够比较小.此 外BCB 3.0藉由使
用 
ATL可以让C/C++的程序员在未来跟上MicroSoft最新的 技术,例如对于COM+的支援
.例 
如,当你使用BCB3.0建立远端的DCOM服务器, 可以启动ATL选项指定DCOM服务器使
用的 
样例方式以及使用的执行绪模型. 当你使用BCB3.0的ATL选项制作ActiveXForm时
,它可 
以结合资料库的能力, 让你开发出可以直接在IE浏览器中执行的资料库应用程序

    在这里有一点很重要的是在Delphi 3.02的DAX引擎之中,并没有指定 Active
X元件 
使用的执行绪模式.所以由Delphi 3.02制作的ActiveX和Act- iveFrom都无法正确
的在 
IE4.0之中显示出来.这并不是Delphi 3.02的臭虫, 而是Microsoft改变了Active
X元件 
游戏的规则.此外由于IE4.0之中有一些 臭虫的存在,所以我建议你升级到4.01或
是 
4.02. 
  
     #处理Windows讯息的技术差异 

    BCB 3.0和Delphi 3.02在处理Window计算的方式上也有相异这处. 基本上BC
B和 
Delphi都是使用VCL这个元件类别,所以在处理Window讯息上 也是由VCL元件来处
理和 
分派的.下面的表格比较了VCL, OWL以及 MFC三种 FrameWork在处理Window讯息上
的异 
同: 
  
     * Windows讯息处理的处理方式: 
    VCL元件类别---使用虚拟函数(Virtual Function) 和动态函数(Dynamic 
Function) 
    OWLFramework(2.0之后)---使用虚拟函数 
    MFCFramework---使用Message MAP 

     * Windows讯息caching: 
     VCL元件类别---否 
     OWLFramework(2.0之后)---是 
     MFCFramework---否 

     * 处理Windows讯息的速度: 
     VCL元件类别---良好 
     OWLFramework(2.0之后)---优 
     MFCFramework---优 
  
    请注意,由于VCL元件类别在处理Window讯息时除了需要分派Window讯息到特
定的 
讯息处理函式之外,它也会负责触发VCL上相关事件处理函数, 所以在处理Window
讯息 
的速度上会比OWL以及MFC稍慢,但是在功能上却比 OWL和MFC更为丰富. 
    在BCB 3.0中由于它使用的C++编译器是BC++5.3,而且使用的Delphi编译器也
是 
Version 11,更重要的是由于BCB 3.0除了使用VCL类别进行VCL元 件的事件处理函
数的 
window讯息分派之外,它也使用了类似MFC的Message Map来分派使用者定义的讯息
处理 
函式,所以在处理window讯息的速度上比 Delphi 3.02来得快速. 

     #处理windows讯息的方式: 

    Delphi 3.02---使用虚拟函数(Virtual Function) 和动态函数(Dynamic 
Function) 
    Borland C++ Builder 3.0---混合虚拟函数和动态函数,以及类似MFC 的Mes
sage 
MAP的事件处理函数的window讯息分派之外,它也使用了类似MFC的Message Map来
分派 
使用者定义的讯息处理函式,所以在处理window讯息的速度上比 Delphi 3.02来得
快 
速. 
  
    我分别使用Delphi3.02和BCB3.0撰写了一段处理window讯息1000次的示范程
序,在我的Pentium133,64M Ram的机器上执行的结果如下: 
  
    处理1000讯息的时间: 
    BCB 3.0-------4.08 
    Delphi 3.02---4.89 

    从上面的结果也可以证明BCB在处理window讯息方面是比Delphi3.02来得稍为
快 
速.此外在ActiveX元件方面由于BCB3.0也是使用ATL的Message MAP 方式,所以在
这方 
面比Delphi 3.02有较好的表现. 
  

--
知识站是知识站。
知识站是http://techsite.126.com

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.11.111]

[关闭][返回]