[转载]Visual C++ vs C++ Builder

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

  其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到C++ Builder的确是一个先进与强大的程式开发工具,但更最重要的一点是,我深信C++ Builder能给公司带来巨大了商业利益与生产力的大幅提升,我可以假装没看到这几点,但是基於良心与责任我不能不花点时间来跟大家分享一下我的看法与心得。

  C++ Builder的前身是Borland C++,Borland C++ 所使用的 Application Framework是OWL,而OWL以物件导向的角度来看,也的确比MFC先进很多(这在学界早有定论),但是在市场上却叫好不叫座,直到Imprise(以前的Borland)推出以VCL为Application Framework的Delphi之後,这才一炮而红。

  虽然Delphi的VCL非常强大与好用,但是Delphi所使用的是OOPascal语法,和C++不同,直到後来,Imprise才推出以C++为程式语言的C++ Builder,而其所使用的Application Framework正是赫赫有名的VCL。

  VCL的全名是“Visual Component Library“,它是一种新一代的Application Framework,以元件化、视觉化为设计的方向。VCL的兴起,起源於OWL和MFC都日见庞大与痴肥,不利於日益复杂的程式开发趋势,於是Imprise的设计小组决定开发一套更物件导向化的Application Framework,使程式设计师能以视觉化的观念、元件重用的观念来快速设计出各式各样的应用程式,将物件导向的威力与精髓发挥的淋漓尽致,相形之下,OWL和MFC都只算过时与半子的Application Framework。

  果然~C++ Builder一推出後,在微软的大军压境下以及人们西瓜靠大边的心态下,仍然引起了一阵旋风,在News上许多程式师表示它们对C++ Builder的肯定与激赏,更有人指出,根据经验,在微软的市场优势之下,Delphi和C++ Builder仍能欣欣向荣,这表示Delphi和C ++ Builder的产品水准不是只赢微软产品几个百分点,而是数十至数百个百分点,否则Imprise的产品早就消失不见了。

  到底C++ Builder的特性与优点在哪里呢?这对於我们公司又有什麽利弊呢?我的观点与分析如下。大家想一想,当我们使用Visual C++来开发程式的时候,最痛苦的事情是什麽?答对了~那就是GUI的设计。根据经验,通常我们利用Visual C++开发一套软体时,设计GUI所花的时间几乎占掉程式开发周期的三分之一~甚至到二分之一以上,而设计和界面无关的核心程式通常只占了不到二分之一左右至三分之二的时间,但是使用C++ Builder则可以大幅简化这个问题。C++ Builder的VCL提供大量的各式各样GUI软体元件,让我们可以将大部分的心力放在核心程式码的设计上,而不必跟Windows系统的讯息、界面去搏斗。

  C++ Builder的Compiler在功能上跟Visual C++都一样,Win32 API等都可以呼叫与使用(VCL就是架构在Win32 API之上,没有不相容的问题,只是包装的更高明,也非常有弹性),你不用担心目前有什麽事情是Visual C++可以做而C++ Builder做不到的,进而拒绝使用C++ Builder,抱持这样的观点就好像为了健康而不坐汽车,却坚持骑脚踏车从淡水来上班一样因噎废食,在网路许多非常有经验的程式设计师会告诉你这是多虑了。曾有人比喻的很传神,如果Visual C++是手排车,那C++ Builder就是手自排两用车(看过三菱的Sportsmode手自排两用车吗?)。

  C++ Builder的程式设计细节是清楚而透明的,除了Application Framework的运作保有神秘感之外(MFC也是),所有的程式码与档案相关的档案都是可以掌握与观看的,不像某些开发工具,程式设计师许多事情是无法掌握的,而C++ Builder 所产生的码大小与产生的时间都和Visual C++ 都是同级的(我指的是胜负差距都不大,到要一提的是,C++ Builder 3.0采用一种技术,可以使得第二次以後的Compiling速度提升五倍以上,笔者可以证实这一点)。

  我的观点是,我们公司非常适合大量采用C++Builder作为程式开发工具,当然啦,为了相容性的考量和母公司有特殊要求的专案除外。由Visual C++转换到C++ Builder不是很严重与痛苦的事情,反而会觉得很快乐,这就好像开手排车人改学自排车一样,甚至可以更掌握C++ Builder的威力。

  利用C++ Builder来开发程式,我们可以快速的产生程式的GUI layout和prototype,在後续调整程式界面的调整周期中也非常的方便,我个人认为至少可以比
Visual C++节省三至五倍以上的时间。

  除了某些特殊需求的专案之外(例如版本升级,而原来的版本是VC开发的,或者参考改写的程式码是用VC写的,事实上C++ Builder也可以支援MFC),我看不出来公司有什麽专案的规模或内容非要靠Visual C++不可,自己找罪受不说,也违反了“Build a high performance company“的目标,而将大量的资源投注在落後的工具上,程式生产力也无法巨幅提升。因此我建议公司应该大量而全面性的鼓励员工使用并熟悉C++ Builder成为第一线的程式开发工具,根据我的浅见,这样的投资不但回收快速,而且效果宏大。

  简而言之,C++ Builder同时兼具C++程式语言的威力和Visual Basic这种 Rapid Development Tool的视觉化程式开发环境的便利,土法炼钢或必先利其器,决定就在你了。

转:在VS2010下编译、调试和生成mex文件 最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译、调试、生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是弱爆了(非常繁琐且对于cpp文件多的根本无法用)。所以特此转载和记录如何用VS2010+matlab2012a编译生成mexw32的方法。 1.打开VS2010,新建一个win32 项目,之后选择d 阅读详情

相关推荐

Kinect for Windows SDK v2.0 开发笔记 (十五) 手势帧

使用 Kinect v2 官方 SDK 提供的手势识别解决方案进行手势识别

dustpg的专栏 1万+

C++ Builder下端口映射服务器的开发与研究(更新版)

(同一个世界,同一个梦想,交流学习C++Builder XE10,传承c++builder的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。) 一、业务需求      端口映射即网络代理,其功能与路由器等网络设备基本类似,常用的软件代理也很多,但是如何自己动手开发一个端口映射代理呢?比如某银行的外联业务

路在脚下 1735

使用纯C++实现SQL Server2005 数据库读写操作详细步骤

使用纯C++实现SQL Server2005 数据库读写操作详细步骤

hddryjv的博客 2036

利用C++ Builder进行精确计时

虽然Win95下可视化开发工具如VC、Delphi、C++ Builder等都有专用的定时器控件Timer,而且使用很方便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,往往不能满足实时控制环境下的应用。不过Microsoft公司在Win32 API函数库中已经为用户提供了一组用于高精度计时的底层函数,如果用户使用得当,计时精度可

yaneng的专栏 1991

VS2022&VS2019 + C++ Builder开发环境搭建

你如果只是单纯的想用VS2019写C++代码,选择C++的桌面开发即可,如果是需要Python / Android/等平台的开发,根据实际情况勾选即可。2、正常情况下,va-2022也是支持低版本的vs的,第一次安装可能会出现,匹配和安装都成。下一步就是选择安装位置的选择,在上面的选项中可以选择;功,扩展中已安装也能找到,并且也是在重启的状态;路径默认一般是C盘,因为有下载缓存也会临时存放在C盘,如果安装在C盘,一定要。需要注意的是在选择开发配置的时候,可以安装自己的实际开发需要时设置。

Controller_wgy的博客 3730

Kinect for windows v2 姿势识别工具之 开发 Visual Gesture Builder 匹配程序(c++版本)

转载至:https://www.parful.com/blog/article/110 在开始学习这篇教程前,你首先需要了解如何利用VGB工具制作一个后缀名为 .gba 或 .gbd 的姿势数据库文件。如果没有此基础,请按顺序阅读: Kinect for windows v2 姿势识别工具之 Kinect Studio 的使用 Kinect for windows v2 姿势识别工具之 Vi...

ZDT_zdh的博客 1225

如何将C++代码逆向生成类图 (VS2013)

1. 将代码添加到VS2013工程中; 2. 切换到“类视图”; 3. 选中项目 右键“视图”->"查看类图”。   如果项目文件太多的话,请耐心等待一会,最后会生成一个xx.cd的类图文件。 4. 结果: 5. 如果想转成图片,可以右键菜单: 转载于:https://www.cnblogs.com/Kingfans/p/6237825.html...

weixin_30659829的博客 2222

C/C++开发工具/集成开发环境 下载汇总

~ 经典开发工具 Visual Studio 6.0(Visual C++ 6.0/VC6)系列下载汇总 最新版Visual Studio 2010 MSDN原版(内置Key) 全系列下载 ...

weixin_33748818的博客 209

C++中使用SEH

Alt+F7 => C++ => Code Generation => Enable C++ Exception,选择”Yes with SHE Exceptions” 另外,用VS2005编译驱动的时候,如果使用SEH,可能会把kernel32.dll link到驱动里。这样讲导致驱动不能正常加载。 简单的办法是: Alt+F7 => Linker => In...

weixin_34253126的博客 873

gSoap生成C++接口

gsoap一键生成C++代理类及其调用 原创 ...

weixin_43277501的博客 1258

win10 vs2010安装教程(超详细,附下载链接)

在win10环境下安装Visual C++ 2010,帮助大家做一些常见的配置,以及第一次使用它来写人生的第一个HelloWord程序。 环境准备 1.win 10系统 2.迅雷或者百度云 3.解压工具 安装的前准备 首先查看电脑的位数 方法: 1.同时按Win键+R键,在打开的运行窗口中输入“dxdiag”,并确定。(Win键就是键盘上...

weixin_30379911的博客 749

再发:VS怎么会这个样子的?

VS怎么会这个样子的?由于我的页面是手工写的,放到VS里边后,由代码视图切换到页面视图的时候,在看回代码:VS就把我的html代码有些部分都换成了大写的。这个问题怎么解决? 转载于:https://www.cnblogs.com/catcn/archive/2006/07/27/461160.html...

weixin_30894583的博客 76

随笔

c++builder我想说你的界面太不友好,调试太麻烦,跟vs比差的很远。 转载于:https://www.cnblogs.com/zzyoucan/p/3847607.html

weixin_30265103的博客 76

VS2005+Pocket PC 2003上DirectShow SDK开发环境配置

基于PC的DirectShow开发及其开发环境配置 二个Sample源代码(必须安装Platform Builder 5.0): D:/WINCE500/PUBLIC/DIRECTX/SDK/SAMPLES/DSHOW/PLAYERS/PLAYWND(一个简单的PLAYER样例程序)和D:/WINCE500/PUBLIC/DIRECTX/SDK/SAMPLES/WMP/CEPLAYER(完整的

dengchonglin的专栏 1352

Dot Net 初探

最近站上 关于MS的活动真是很多,关于.Net和VS的资料也很多,早在02年的时候,我已经开始了解.Net 和 WebService Soap 之类的东东,那时候在学校真是屁事太多,没有好好深入研究一下,当时投靠的是JAVA阵营。根本不屑于.Net因为在偶的内心里,MS虽然做的很好,还是垄断。 偶是一个坚定的跨平台者,除了GCC和VC,之外的开发工具用的也不多...

weixin_33772645的博客 89

IDE 不是程序员的唯一选择(一)

转载自:http://blog.codingnow.com/2008/09/replacement_of_ide_1.html 我心目中,这篇文章的目标读者应该是在 Windows 下完全使用 Visual Studio 或 Borland C++ Builder (现

canmeng50401的专栏 738

VC自动打开Word文档并打印

 VC自动打开Word文档并打印VC知识库出品 转载摘要这篇文章讲述了如何在Visual C++5.0或6.0中自动打开并打印Microsoft Word文档。更多信息你可以将文章中的代码拷贝到自己的MFC .cpp文件中的事件定义消息处理函数中去。然而,这些代码主要是为了阐述如何处理在Msword8类型库中定义的IDispatch接口与成员函数。读懂并理解了这些代码你就可以修改这些例

游手好弦 信步涂鸦 4025
上一篇: [转载]Delphi&BCB一线程序员开发经验
下一篇: [转载]AnsiString 原來是一個字符數組.
Rex_love_Burger
博客等级 码龄23年 13粉丝 47原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值