想学一种C++,是Visual C++还是C++ Builder???

linlin 2000-08-31 08:38:00
加精
想学C++,本来是打算学Visual C++,可看了以下一篇文章,又不知是学VC还是BCB??

BCB 和VC的比较:


【yukuang】 于 2000-8-26 15:22:51 加贴在 C & C++ ↑:

其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到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的视觉化程式开发环境的便利,土法炼钢或必先利其器,决定就在你了。


...全文
535 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
djh4sll 2001-06-17
  • 打赏
  • 举报
回复
我越看越胡涂!
playwater 2001-06-08
  • 打赏
  • 举报
回复
BCB万岁!
vc8519 2001-01-18
  • 打赏
  • 举报
回复
vc万岁
zhexun 2001-01-11
  • 打赏
  • 举报
回复
其实,vc更好一点,最起码其对windows更了解一点
Smalling_D 2000-12-28
  • 打赏
  • 举报
回复
这两种开发工具我都用过,我觉得C++程序员应该对两种C++SDK都熟悉,因为它们既有共同之处,又有各自独特的优点,具体开发时在具体选择用哪种!况且有的时候这是由你的leader决定的!
wyzegg 2000-12-02
  • 打赏
  • 举报
回复
两种都不要学
victorchen_2000 2000-12-01
  • 打赏
  • 举报
回复
MFC确实太差,有时不如自己直接使用API。
如果你开发Device Driver,就用VC吧,否则。。。
vcgreener 2000-08-31
  • 打赏
  • 举报
回复
通篇文章都在说 BCB 好好好, 你还犹豫什么
不过 MFC 是有点儿过时
Zhouxw 2000-08-31
  • 打赏
  • 举报
回复
如果你传统,用 Visual C++,
如果你时尚,用 C++ Builder。
书名:《C/C++串口通信典型应用实例编程实践》(电子工业出版社.曹卫杉) PDF扫描版,全书共分10章,共316页。 内容介绍 本书从工程应用的角度出发,对目前流行的三种不同类型的C/C++语言(包括C++ BuilderVisual C++和LabWindows/CVI)开发串口通信(也称为串行通信)程序进行了阐述。 基础篇简单介绍了C/C++语言实现串口通信需要的基本知识;应用篇通过PC与PC、PC与单片机、PC与智能仪器、PC与PLC、PC与GSM短信模块、PC与远程I/O模块等典型应用实例,详细介绍了C/C++语言利用MSComm控件、API函数实现串口通信的程序设计方法。每个实例的设计任务同时采用C++ BuilderVisual C++和Labgrmdows/CVI实现。 本书内容丰富,结构清晰,文字叙述深入浅出,通俗易懂,以实践应用为主,突出程序设计,重在功能实现,有较强的实用性和可操作性。 本书可作为高等院校计算机应用、测控技术、机电一体化、自动化等专业的研究生、本科生以及计算机测控系统研发的工程技术人员等学习C/C++串口通信编程技术的参考书。 目录 基础篇   第1章 串口通信基础   1.1 串口通信的基本概念   1.2 串口通信及其标准   1.3 串口通信调试   第2章 C/C++编程语言与串口通信   2.1 串行通信控件MSComm   2.2 API函数   2.3 线程   2.4 LabWindows/CVI串口通信函数 应用篇   第3章 PC与PC串口通信程序设计   3.1 设计说明   3.2 任务实现   第4章 PC与单片机串口通信程序设计   4.1 设计说明   4.2 任务实现   第5章 PC与智能仪器串口通信程序设计   5.1 设计说明   5.2 任务实现   第6章 PC与PLC串口通信程序设计   6.1 设计说明   6.2 任务实现   第7章 PC与GSM短信模块串口通信程序设计   7.1 设计说明   7.2 任务实现   第8章 PC与读卡器串口通信程序设计   8.1 设计说明   8.2 任务实现   第9章 PC与智能仪器构成的DCS程序设计   9.1 设计说明   9.2 任务实现   第10章 PC与远程I/O模块构成的DCS程序设计   参考文献
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质?你是否想成为一名资深开发人员,想开发别人做不了的高性能程序?你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? 那么C++就是你个人能力提升,职业之路进阶的不二之选。【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署;2.吊打一切关于C++的笔试面试题;3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块基础篇本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。进阶篇本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。提升篇:本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
解压后,150M随书源代码 第1章 利用单片机开发板实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例1 利用keil c5l实现单片机模拟电压输入   例2 利用汇编语言实现单片机模拟电压输入   例3 利用c++builder实现pc与单片机模拟电压输入   例4 利用visual c++实现pc与单片机模拟电压输入   例5 利用labwindows/cvi实现pc与单片机模拟电压输入  第3节 模拟量输出程序设计   例6 利用keil c51实现单片机模拟电压输出   例7 利用汇编语言实现单片机模拟电压输出   例8 利用c++builder实现pc与单片机模拟电压输出   例9 利用visual c++实现pc与单片机模拟电压输出   例10 利用labwindows/cvi实现pc与单片机模拟电压输出  第4节 数字量输入程序设计   例11 利用keil c51实现单片机数字量输入   例12 利用汇编语言实现单片机数字量输入   例13 利用c++builder实现pc与单片机数字量输入   例14 利用visual c++实现pc与单片机数字量输入 .  例15 利用labwindows/cvi实现pc与单片机数字量输入  第5节 数字量输出程序设计   例16 利用keil c51实现单片机数字量输出   例17 利用汇编语言实现单片机数字量输出   例18 利用c++builder实现pc与单片机数字量输出   例19 利用visual c++实现pc与单片机数字量输出   例20 利用labwindows/cvi实现pc与单片机数字量输出 第2章 利用plc实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例21 三菱fx2n plc模拟电压输入程序   例22 利用c++builder实现pc与fx2n plc模拟电压输入   例23 利用visual c++实现pc与fx2n plc模拟电压输入   例24 利用labwindows/cvi实现pc与fx2n plc模拟电压输入  第3节 模拟量输出程序设计   例25 三菱fx2n plc模拟电压输出程序   例26 利用c++builder实现pc与fx2n plc模拟电压输出   例27 利用visual c++实现pc与fx2n plc模拟电压输出   例28 利用labwindows/cvi实现pc与fx2n plc模拟电压输出  第4节 数字量输入程序设计   例29 利用c++builder实现pc与fx2n plc数字量输入   例30 利用visual c++实现pc与fx2n plc数字量输入   例31 利用labwindows/cvi实现pc与fx2n plc数字量输入  第5节 数字量输出程序设计   例32 利用c++builder实现pc与fx2n plc数字量输出   例33 利用visual c++实现pc与fx2n plc数字量输出   例34 利用labwindows/cvi实现pc与fx2n plc数字量输出  第6节 数字量输入与输出程序设计   例35 西门子s7-200 plc数字量输入与输出程序   例36 利用c++builder实现pc与s7-200 plc数字量输入与输出   例37 利用visual c++实现pc与s7-200 plc数字量输入与输出   例38 利用labwindows/cvi实现pc与s7-200 plc数字量输入与输出 第3章 利用数据采集卡实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例39 利用c++builder实现pc与pci数据采集卡模拟电压输入   例40 利用visual c++实现pc与pci数据采集卡模拟电压输入   例41 利用labwindows/cvi实现pc与pci数据采集卡模拟电压输入  第3节 模拟量输出程序设计   例42 利用c++builder实现pc与pci数据采集卡模拟电压输出   例43 利用visual c++实现pc与pci数据采集卡模拟电压输出   例44 利用labwindows/cvi实现pc与pci数据采集卡模拟电压输出  第4节 数字量输入程序设计   例45 利用c++builder实现pc与pci数据采集卡数字量输入   例46 利用visual c++实现pc与pci数据采集卡数字量输入   例47 利用labwindows/cvi实现pc与pci数据采集卡数字量输入  第5节 数字量输出程序设计   例48 利用c++builder实现pc与pci数据采集卡数字量输出   例49 利用visual c++实现pc与pci数据采集卡数字量输出   例50 利用labwindows/cvi实现pc与pci数据采集卡数字量输出 第4章 利用usb数据采集板实现自动化控制  第1节 设计说明  第2节 模拟量输入程序设计   例51 利用c++builder实现pc与usb数据采集板模拟电压输入   例52 利用visual c++实现pc与ljsb数据采集板模拟电压输入   例53 利用labwindows/cvi实现pc与usb数据采集板模拟电压输入  第3节 模拟量输出程序设计   例54 利用c++builder实现pc与usb数据采集板模拟电压输出   例55 利用visual c++实现pc与usb数据采集板模拟电压输出   例56 利用labwindows/cvi实现pc与usb数据采集板模拟电压输出  第4节 数字量输入程序设计   例57 利用c++builder实现pc与usb数据采集板数字量输入   例58 利用visual c++实现pc与usb数据采集板数字量输入   例59 利用labwindows/cvi实现pc与usb数据采集板数字量输入  第5节 数字量输出程序设计   例60 利用c++builder实现pc与usb数据采集板数字量输出   例61 利用visual c++实现pc与usb数据采集板数字量输出   例62 利用labwindows/cvi实现pc与usb数据采集板数字量输出 第5章 利用can数据采集模块实现数据采集与控制  第1节 设计说明  第2节 模拟量输入程序设计   例63 利用c++builder实现pc与can数据采集模块模拟电压输入   例64 利用visual c++实现pc与can数据采集模块模拟电压输入   例65 利用labwindows/cvi实现pc与can数据采集模块模拟电压输入  第3节 模拟量输出程序设计   例66 利用c++builder实现pc与can数据采集模块模拟电压输出   例67 利用visual c++实现pc与can数据采集模块模拟电压输出   例68 利用labwindows/cvi实现pc与can数据采集模块模拟电压输出  第4节 数字量输入程序设计   例69 利用c++builder实现pc与can数据采集模块数字量输入   例70 利用visual c++实现pc与can数据采集模块数字量输入   例71 利用labwindows/cvi实现pc与can数据采集模块数字量输入  第5节 数字量输出程序设计   例72 利用c++builder实现pc与can数据采集模块数字量输出   例73 利用visual c++实现pc与can数据采集模块数字量输出   例74 利用labwindows/cvi实现pc与can数据采集模块数字量输出 第6章 利用远程i/o模块实现自动化控制  第1节 设计说明  第2节 模拟电压输入程序设计   例75 利用c++builder实现pc与远程i/o模块模拟电压输入   例76 利用visual c++实现pc与远程i/o模块模拟电压输入   例77 利用labwindows/cvi实现pc与远程i/o模块模拟电压输入  第3节 模拟电压输出程序设计   例78 利用c++builder实现pc与远程i/o模块模拟电压输出   例79 利用visual c++实现pc与远程i/o模块模拟电压输出   例80 利用labwindows/cvi实现pc与远程i/o模块模拟电压输出  第4节 数字量输入程序设计   例81 利用c++builder实现pc与远程i/o模块数字量输入   例82 利用visual c++实现pc与远程i/o模块数字量输入   例83 利用labwindows/cvi实现pc与远程i/o模块数字量输入  第5节 数字量输出程序设计   例84 利用c++builder实现pc与远程i/o模块数字量输出   例85 利用visual c++实现pc与远程i/o模块数字量输出   例86 利用labwindows/cvi实现pc与远程i/o模块数字量输出

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧