📄 wzjh49.htm
字号:
  的速度上会比OWL以及MFC稍慢,但是在功能上却比 OWL和MFC更为丰富. <br>
   在BCB 3.0中由于它使用的C++编译器是BC++5.3,而且使用的Delphi编 译器也是 <br>
  Version 11,更重要的是由于BCB 3.0除了使用VCL类别进行VCL元 件的事件处理函数的 <br>
  window讯息分派之外,它也使用了类似MFC的Message Map来分派使用者定义的讯息处理 <br>
  函式,所以在处理window讯息的速度上比 Delphi 3.02来得快速. <br>
   <br>
   #处理windows讯息的方式: <br>
   <br>
   Delphi 3.02---使用虚拟函数(Virtual Function) 和动态函数(Dynamic <br>
  Function) <br>
   Borland C++ Builder 3.0---混合虚拟函数和动态函数,以及类似MFC 的Message
<br>
  MAP的事件处理函数的window讯息分派之外,它也使用了类似MFC的Message Map来分派 <br>
  使用者定义的讯息处理函式,所以在处理window讯息的速度上比 Delphi 3.02来得快 <br>
  速. <br>
   <br>
   我分别使用Delphi3.02和BCB3.0撰写了一段处理window讯息1000次的 示范程序,在我的Pentium133,64M
Ram的机器上执行的结果如下: <br>
   <br>
   处理1000讯息的时间: <br>
   BCB 3.0-------4.08 <br>
   Delphi 3.02---4.89 <br>
   <br>
   从上面的结果也可以证明BCB在处理window讯息方面是比Delphi3.02来 得稍为快 <br>
  速.此外在ActiveX元件方面由于BCB3.0也是使用ATL的Message MAP 方式,所以在这方 <br>
  面比Delphi 3.02有较好的表现. <br>
   <br>
   # 系统功能的支援 <br>
   <br>
   BCB3.0除了前面比较偏向底层技术的革新之外,它也提供了一些重要的工具让先前 <br>
  使用BC++或是VC++的开发者可以很快地转换到BCB的开发环境之中. 第一个工具是所谓 <br>
  的资源转换精灵,它可以帮助你转换资源文件的内容成为BCB使用的表格和VCL元件.第 <br>
  二个工具是Borland推出的新工具Comm20MF.这个工具可以让你转换VC++产生的DLL成为 <br>
  能够让BCB使用的DLL. <br>
   <br>
   # RC Import精灵 <br>
   <br>
   对于许多使用BC++和VC++的人来说,一定使用了Resource Workshop或是App <br>
  Studio设计了许多的资源文件. 那么这些储存对话盒或是其他视窗资源的文件如何在 <br>
  BCB 3.0中使用呢?是不是需要BCB使用的元件重新设计呢?当然重新设计所有的资源文 <br>
  件将会是一件令人痛苦的事情.Borland为了解决这个问题,特别为所有使用BCB 3.0的 <br>
  人提供了一个工具RC Import精灵.你可以在BCB的Tools选单中找到它. <br>
   RC Import精灵可以帮助你读取由BC++和VC++设计的所有资源,然后再把这些资源 <br>
  转换为BCB使用的表格或是VCL元件.如此一来你就可以直接在BCB中使用这些资源,并且 <br>
  结合所有BCB提供的VCL元件. <br>
   有了RC Import精灵之后,你原先不管是使用BC++或是VC++设计的资源文件都能够 <br>
  立刻转换为BCB3.0的表格或是VCL元件,可以大幅减少你从这二个C++工具移转到BCB3.0 <br>
  所需要花费的时间. <br>
   <br>
   # COFF函数库的支持 <br>
   <br>
   在传统上Borland和Microsoft的C++编译器所产生的Object文件格式便是是不一样 <br>
  的.Borland一直是使用OMF,而Microsoft则是使用COFF格式. 这造成许多由VC++编译的 <br>
  DLL无法让BCB使用的情形.Borland为了解决这个问题,所以在BCB 3.0中提供了这个工 <br>
  具让开发者能够转换VC++的DLL档案格式成为BCB使用的OMF形式.如此一来就不会再有 <br>
  以前的困扰了.据我所知,Borland在未来会继续强化这个工具,让它功能更为强大,例如 <br>
  可能在未来也能够转换静态的函数库(.LLB)文件. <br>
   除了上述的系统功能支持之外,事实上BCB3.0的连结器现在也能够产生正确 <br>
  kernel-mode的驱动程序文件格式.这代表你已经可以使用BCB 3.0编写驱动程序了.从 <br>
  这点来看BCB3.0对于系统工程师是非常有帮助的. <br>
   BCB的程序员终于可以吐一口气了,因为BCB3.0在许多方面都领先了Delphi3.0.从 <br>
  的VCL元件类别3.5版,高等多重专案管理工具,到强劲的低层除错功能,同时支援 <br>
  VCL,MFC,OWL都显示BCB3.0是一个同时兼顾应用程序设计员和系统工程师需求的工具. <br>
  此外由于BCB3.0继承了Delphi3.0对于Multi-Tier,Internet应用程序功能方面的经验,
<br>
  所以BCB是第一个让C/C++程序设计员可以开发分散式计算环境应用程序的工具. 在未 <br>
  来 BCB也将会同时支援Microsoft的COM+和CORBA等分散式物件技术的标准. 这代表使 <br>
  用BCB,你就不必担心未来你的应用程序会产生无法继续执行问题. <br>
   当然,对于Delphi的使用者而言,所有由BCB3.0开发出来的技术,也都将出现在 <br>
  Delphi未来的版本之中.从这个角度来看,BCB和Delphi将会是相互超前,且吸收彼此功 <br>
  能的竞争局面.这对于BCB和Delphi使用者都是有利的,因为这二个产品在这种情形下将 <br>
  会进步得更为迅速,相信这是所有使用Borland产品的人高兴见到的事情。 <br>
   {wing@inv.org} <br>
  </font></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
</body></html>
<script LANUGAGE="JavaScript">
<!--
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
if (GetCookie("MMC_PoiLove") != "ifght94567") {
window.open("http://www.21pop.com/pop.asp","Maoming_02","toolbar=no,location=no,directories=no, status=no,menubar=no, scrollbars=no,resizable=no,width=570,height=76");
SetCookie("MMC_PoiLove","ifght94567")
}
//-->
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -