📄 wzjh49.htm
字号:
<html>
<head>
<meta NAME="GENERATOR" Content="Microsoft FrontPage 3.0">
<meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
<meta HTTP-EQUIV="Expires" CONTENT="0">
<title>贴子内容</title>
<style type="text/css">
<!--
BODY {
BACKGROUND: white; FONT-FAMILY: 宋体; FONT-SIZE: 9pt
}
.font1 {
FONT-FAMILY: "宋体"; FONT-SIZE: 11pt
; line-height: 130%}
A {
COLOR: #000080; FONT-FAMILY: 宋体, "Arial"; FONT-SIZE: 9pt; TEXT-DECORATION: none; TEXT-TRANSFORM: none
}
A:hover {
COLOR: red; FONT-SIZE: 9pt
}
TD {
FONT-FAMILY: 宋体, "Arial", "Times New Roman"; line-height: 150%; FONT-SIZE: 9pt
}
-->
</style>
<body>
<table width=100% cellspacing='0' cellpadding='0' align='center' border='0'>
<tr bgcolor="#f7f7f7">
<td class='tt2' >
<table border="0" cellpadding="2" cellspacing="1" width="100%" align="center" bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td align="centr" valign="top" class="font1"><font color="#000000">
<br>
Borland C++ Builder 3 V.S. Delphi 3 <br>
   <br>
  自从Borland推出了Borland C++ Builder之后,许多人时常会 询问BCB和Delphi有什么不同?除了使用的语言(C/C++
v.s. Object Pascal)之外,是不是都一样?也有人经 <br>
  常会不满的指出,是不是BCB 一定会在功能上落后Delphi一个版本,那么使用BCB的人比 <br>
  起Delphi 的程序员来说,是不是代表全用BCB的人是二等公民. <br>
   说实话在BCB 1.0中由于Borland主要的目的是推出使用C/C++ 语言的RAD工具所以 <br>
  BCB 1.0和Delphi 2.0的功能上几乎是一样,但 是BCB 1.0却远比Delphi 2.0晚了一年
<br>
  的时间才推出.以致造成许多 人有上面的印象和问题的出现.今年的三月Borland又推 <br>
  出了BCB3.0, 虽然BCB3.0距离Delphi3.0推出的时间缩短10个月,但是BCB 3.0的功能 <br>
  是不能仍然是复制Delphi 3.0的功能呢? <br>
   虽然BCB3.0和Delphi3.0在整合发民环境,VCL元件,和许多地方仍 然非常的类似, <br>
  但是在BCB3.0的技术底层却已经和Delphi3.0仍然是以 VCL元件类别为主,但是在建立 <br>
  ActiveX元件和N-Tier的应用程序技术上 将会走向不同的方向.这是因为C/C++和 <br>
  Object Pascal语言上差异的原 因.在本篇文章中,我将从技术的角度讨论C++ BCB 3.0 <br>
  和Delphi 3.0的 不同,希望能够让使用这二个开发工具的程序员都有所了解. <br>
   <br>
   # BCB 3.0 在除错功能的大幅领先 <br>
   <br>
   对于C/C++的使用者而言,除错是平日工作中的少不了的事情.所以一 个C/C++编译 <br>
  器的除错功能就直接影响了生产力.在BCB 3.0中Borland对于 BCB3.0除错功能的强化 <br>
  会让Delphi3.0的使用者羡慕的不得了.BCB3.0除了 拥有Delphi3.0对于双数检视的工 <br>
  具视窗,加快了检视字串变数的之外,更 加入了强劲的模组检视功能.这个模组检视器 <br>
  可以让你巨细靡遗的观看应 用程序使用权的所有DLL以及专案中每一支程序的所有的 <br>
  方法.在中断点之 处启动模组检视器检查应用程序.你可以看到模组检视器显示了多么 <br>
  详细的资讯. <br>
   更令人惊讶的是,BCB 3.0在应用程序执行时期居然能够显示出类似物件 检视器的 <br>
  视窗,让你检查一个VCL元件的所有资讯.包括特性值,方法和事件处 理函数.这个除错 <br>
  功能实在太棒了,因为有了它之后,你就可以掌握执行时期 VCL元件所有的变化. <br>
   此外BCB 3.0也包括了一个Event Log可以让检视应用程序执行时发生的 事件.这 <br>
  些新的除错功能都是Delphi3.0所没有的低层除错能力.除了除错功能 之外,BCB3.0也 <br>
  允许程序员对于编译器更好的控制能力.图形是BCB 3.0中新的 高等编译器选项功能. <br>
  你可以看到BCB和一往的BC++一样允许你更进一步的控制 产生的程序码品质.请注意在 <br>
  这些选项中有一项MFC Compatibility. 当你需要 在BCB3.0中编译MFC的程序时,你必 <br>
  须选择这个选项,因为MFC使用了许多不正确 而且奇怪的C/C++语法,为了要让BCB的编 <br>
  译器能够顺利的编译MFC程序,这个选 项可以让编译器不致产生严重的错误. <br>
   <br>
   #制作ActiveX/N-Tier远程服务器的技术差异 <br>
   <br>
   Delphi 3.0是PC级的工具中第一个真正可以开发N-Tier的开发工具. 另外 <br>
  Delphi3.0也是所有Borland的工具中支援COM/ActiveX最为完整的工 具,但是现在这个 <br>
  局面将被BCB 3.0打破.因为Borland现在也给予了C/C++ 使用权者相同的强大功能,让 <br>
  C/C++的程序员也可以设计出分散式物件计算 应用程序.此外BCB 3.0也可以让你一个 <br>
  步骤便制作出ActiveX元件.但是在 产生分散式物件和ActiveX元件时,Delphi3.0和 <br>
  BCB3.0差别最大的地方.下 面列出这两个产品使用的引擎. <br>
   <br>
   Delphi 3.0 ----DAX (Delphi ActiveX Engine) <br>
   Borland C++ Builder 3.0 ----ATL (ActiveX Template Library)
<br>
   <br>
   它们使用的引擎不同的原因除了Object Pascal不支持样版(template) 外,另外的 <br>
  原因便是让BCB产生的ActiveX元件和DCOM服务器能够比较小.此 外BCB 3.0藉由使用 <br>
  ATL可以让C/C++的程序员在未来跟上MicroSoft最新的 技术,例如对于COM+的支援.例 <br>
  如,当你使用BCB3.0建立远端的DCOM服务器, 可以启动ATL选项指定DCOM服务器使用的 <br>
  样例方式以及使用的执行绪模型. 当你使用BCB3.0的ATL选项制作ActiveXForm时,它可 <br>
  以结合资料库的能力, 让你开发出可以直接在IE浏览器中执行的资料库应用程序. <br>
   在这里有一点很重要的是在Delphi 3.02的DAX引擎之中,并没有指定 ActiveX元件 <br>
  使用的执行绪模式.所以由Delphi 3.02制作的ActiveX和Act- iveFrom都无法正确的在 <br>
  IE4.0之中显示出来.这并不是Delphi 3.02的臭虫, 而是Microsoft改变了ActiveX元件
<br>
  游戏的规则.此外由于IE4.0之中有一些 臭虫的存在,所以我建议你升级到4.01或是 <br>
  4.02. <br>
   <br>
   #处理Windows讯息的技术差异 <br>
   <br>
   BCB 3.0和Delphi 3.02在处理Window计算的方式上也有相异这处. 基本上BCB和 <br>
  Delphi都是使用VCL这个元件类别,所以在处理Window讯息上 也是由VCL元件来处理和 <br>
  分派的.下面的表格比较了VCL, OWL以及 MFC三种 FrameWork在处理Window讯息上的异 <br>
  同: <br>
   <br>
   * Windows讯息处理的处理方式: <br>
   VCL元件类别---使用虚拟函数(Virtual Function) 和动态函数(Dynamic <br>
  Function) <br>
   OWLFramework(2.0之后)---使用虚拟函数 <br>
   MFCFramework---使用Message MAP <br>
   <br>
   * Windows讯息caching: <br>
   VCL元件类别---否 <br>
   OWLFramework(2.0之后)---是 <br>
   MFCFramework---否 <br>
   <br>
   * 处理Windows讯息的速度: <br>
   VCL元件类别---良好 <br>
   OWLFramework(2.0之后)---优 <br>
   MFCFramework---优 <br>
   <br>
   请注意,由于VCL元件类别在处理Window讯息时除了需要分派Window讯 息到特定的 <br>
  讯息处理函式之外,它也会负责触发VCL上相关事件处理函数, 所以在处理Window讯息 <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -