持。支持 接口、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 多。 唉,真是金无