当前位置:首页 > 技术学院 > 技术前线
[导读]上位机编程软件的选择

上位机编程软件的选择对众多初学者来说,绝对是一个难以决策的事情。在作为一种编程工具的意义上,我们认为各个软件如:CB(C++Builder) 和VC(VisualC++)没有什么本质的区别。就像Word2000 和WPS2000 在本质都是字处理软件一样,对于语言就象我们都用中文在Word2000 和WPS2000 写文章表达我们思想。CB和VC都是用C++。其它软件都有相同或不同的语言。如VB用的是Basic语言,Delphi用的Pascal语言。

由于应用不同的领域,所以选择的条件也不同。如果你主要是从上位机传传参数设置,显示一些简单的状态,而以下位机控制为主,则所侧重于快速上手应用,而不需要去深入研究。当然还要考虑从你熟悉的语言相结合。下位机编程一般用C语言和汇编,当然你也可能用其它语言。如果你仅会这两种,那么上位机就考虑和其差不多的C或C++来编写。如果你也会其它的语言,当然选择范围更广一些。由于C对界面操作上的复杂化,所以我们一般不会用C来写一界面类的东西。接下来进一步缩小了选择范围,所以只有VC和CB比较适合了。

对于此两款软件历来争议较大。VC有大量的教材和实例程序,还有微软的支持;而CB虽然有良好的界面组件,但相关资料确实很少,你到任意一家书店,很难找到几本象样的教材,有的剩至根本没有,有的只是N多年前对帮助文件翻译过来东西,而VC最少有一架或几架的各类书藉。这是让初学CB最为头大的事情,不过现在还好,由于互联网的强大,和广大CB爱好者的热心。网络上CB的资料已经很多了。

通过上面的分析我们可以作出一些考虑,如果以下位机为主可以选择CB,以上位机为主可以选择VC或CB。当然仅作参考,还一句话没有最好的软件,只有最适合你的软件。以下引用《C++ Builder教程》的节选:

但现在我们要从另外一个角度讨论C++ Builder 这个编程工具。这个角度就是“封装”——面向对象编程思想中的最重要也是最基础的概念。一个要学习编程的人,可能从C 开始学起。学C 时,我们没有接触那些挺玄的概念,到了C++,一切就来了,什么面向对象,什么封装、继承、多态……于是我们兴奋起来,努力去理解、掌握,运用这些概念所代表的技术,在掌握这些别人暂时未能理解的概念之后而颇有成就感……。

现在我要问的是,为什么要有这些概念?这些技术?正确回答这个问题,不仅有助于我们今后对编程语言各种概念的学习,而且它能让我们避免成为新技术的奴隶,这一切也许听起来有些形而上,不过我想通过以下讨论,至少可以回答一个很现实的问题:为什么要选C++Builder?而不是我们更常听的VC?这是我碰到的编程初学者较疑惑的问题之一。

如果人类长有翅膀,那么飞机大抵永远不会被发明。飞机的发明,是为了弥补人类自已不能飞翔的缺陷。不能说所有的技术都是这样,但C++对于C 的发展,完全是为弥补程序员脑力的不足。一个在校生在学会C 后,往往并没有机会用C 去实践一个大中型的项目,体会不到在一个庞大软件工程中,非面向对象语言的短处,所以在之后学习C++的过程中,也就很难真正体会到面向对象语言的长处。简短一点说:不知道C 的短处,就不懂C++的长处。相反,倒是很快就发现C++的缺点:它的代码效率多数情况下都要比C 低不少。

前面我们说过低级语言与高级语言的对比,C++语言也正是从语法结构和语言功能上来限定或实现一门编程语言更加接近人在现实生活中的思维习惯,从而达到减轻人的记忆和判断上的负担。这其中最佳的方法之一就是所谓的“封装”。

VC 的封装类库称为MFC,它是一种很低阶的封装,它并没有按照人类的思维习惯来重新组织和解释Windows 对象(指Windows 编程中所需的数据,处理,机制,接口), 而纯粹是API 一对一的翻版。这样的封装工作带来代码封装所固有的代码效率降低的副作用,却没有给使用者带来任何方便。如果你是编程初学者,而你身边又有VC 高手,那么你一定要多多向他学习请教,因为一个真正的VC 编程高手,其同时一定也是一个深刻理解Windows 内核机制(消息循环,内存管理,多任务实现,资源使用等),熟悉Windows各种常用API 函数等等的高手。

C++Builder 对封装库称为VCL(带VC 字样,可别以为它是Visual C++,其实它是:Visual Component Library,即:可视控件库)。

VC 的MFC 和CB 的VCL 都是基于(但不限于)对Windows API(应用程序接口函数)的封装,为什么要对API 进行封装?这就是回到了我们前面说过的,为什么有了C 又会有C++的问题。因为操作系统是用C 和汇编写成的,它获得到操作系统必须的代码效率,但对应用程序开发者而言,它失去了易用性。所以微软和Borland 都使用高级语言对之进行封装工作。二者谁进行得更好呢?

要想成为Windows 编程高手,最终一定要绕过各种封装,理解Windows 对象。但作为一个初学者,我们必须挑选一个好的封装。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭