开发工具大比拼之Visual C++ VS Delphi

http://tech.ddvip.com   2007年03月20日    社区交流

本文详细介绍开发工具大比拼之Visual C++ VS Delphi

  Delphi中使用WebBroker控件还能很方便地构造出基于数据库的Web页面,通过HTML管理Web数据库。 Visual C++访问数据主要通过ADO和OLEDB,很多ActiveX控件也能添加数据库功能。但是没有像Paradox这样的桌面数据库,Access相对功能太弱了。也许SQL Server是不错的选择。

  COM:新技术的力量

  COM是组件对象模型的缩写。它是OLE和ActiveX技术的基础,COM定义了一组API和一个二进制标准,让不同的编程语言、不同平台的彼此独立的对象相互进行通讯。

  COM是Microsoft制订的行业标准。但Delphi也为COM提供了强大的语言支持。支持接口、variant、宽字符串功能。这些对COM的封装确实比C++更方便。比如在C++(没有类框架)进行COM编程时,变体定义为oaidl.h文件中的VARIANT结构。要处理变体,必须手工调整oleaut32.dll中VariantXXXX() API函数对其进行初始化和管理,如VariantInit()、VariantCopy()、VariantClear()等等。

  Visual C++实现COM编程有一种特殊的方法就是使用ATL。ATL使用Visual C++特有的多重继承来实现COM接口。虽然不见得实现COM服务和控制更容易,但是ATL和最新COM技术的接口,基于模板的构造都比Delphi强。ATL更有利于建立小巧、快捷的COM组件程序。

  按目前通用的观点,Visual C++应用到COM服务程序更有优势,Delphi应用到COM组件程序更合适。

  昨天,今天,明天

  技术的进步在很多时候是此消彼长的。当初Borland的Turbo C和Borland C++几乎是C/C++程序员唯一的选择。微软的Quick C(现在还有人知道这个产品吗?)和Microsoft C/C++从来也没有成为过主流。但Borland C++又流行了多少年呢?不久就被新崛起的Microsoft Visual C/C++压下去了。于是Inprise(原Borland)拣起了当年Turbo Pascal和Borland Pascal的辉煌(事实上Borland的成名作就是第一个Pascal编译器),全力推出了Delphi。Delphi当初推出时被称为VB杀手,但VB现在仍然活得挺好。毕竟微软是靠Basic起家的嘛,VB不是那么容易被打败的。Inprise想了想不和VB争了,使用Delphi的IDE和VCL配上C++语言,推出了C++Builder,又向Visual C++的市场发起了夹攻。C++Builder似乎是个不错的折衷选择了?再仔细想想!C++Builder的优点Delphi都有,但Delphi的优点C++Builder未必有。比如C++Builder的编译速度比VC还慢,哪能和Delphi比?而且因为VCL是Object Pascal写的,C++语言和VCL磨合得并不好。C++Builder的bug比Delphi还多,甚至Sample代码中还有错。VCL的部分功能不能使用,要靠嵌入pascal代码访问。C++Builder可用的第三方控件远没有Delphi多。   

作者:紫云英 曾登高    责编:豆豆技术应用

正在加载评论...