C语言编写GUI程序

简介

众所周知,C程序设计语言是一种高效的、灵活的、强大的系统编程语言,采用了面向过程的编程范式,广泛的应用在系统性编程项目上。著名的linux内核就采用了C语言编写。C语言原生面向过程,提供的抽象能力有限,对于编写较为抽象的大型程序来说较为困难,但是凡事无绝对,总有那么一两个人不信邪,就比如GNOME的开发者,生生的利用C语言写出了偌大一个GNOME项目。但是我们今天的主角并不是GNOME项目,而是另一个更加简单灵活的GUI类库。

LabWindows/CVI

LabWindows/CVI 是National Instruments 公司(美国国家仪器公司,简称NI 公司)推出的交互式C 语言开发平台。LabWindows/CVI 将功能强大、使用灵活的C 语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C 语言的功能,为熟悉C 语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件开发环境。

labwindows/CVI是一款利用C语言编程的继承开发环境,这个环境采用了标准的ANSI C语言作为开发语言,内置了CVI的GUI类库,可以利用提供的GUI类库编写图形界面应用程序,内置了强大灵活的控件体系,基本满足普通常见应用的编程需求。

官网链接:http://www.ni.com/lwcvi/


常用控件1:仪表控制


常用控件2:仪表数据显示


3D图表控件


专属集成开发环境

工作机理

无论这里不讨论CVI类库采用的图形界面机理,只是介绍CVI的使用。
CVI提供的整套编程环境拥有以下优点:

  • 采用标准ANSI C语言作为开发语言,简单实用,富有成效。
  • 提供与Visual Studio项目转换工具,安装后可以在Visual Studio中开发CVI应用程序。
  • 一键生成标准windows应用程序安装包,可以独立发布应用程序。
  • 可以调用windows标准API,利用windows API提供的强大功能。
  • 与一般windows应用程序运行机理相同,可以利用DLL对应用程序进行拓展。
  • 拥有专有数据库工具,可以简化数据库编程操作。
  • 跨平台,拥有linux、windows等多种版本。
  • 所见即所得的GUI编辑器。
  • 随机附带的help文档携带了完备的开发文档,资料丰富。

缺点:

  • 如果非要说缺点,那么无法自定义空间外观,不支持皮肤应该算一个。
  • 类库更为适合固定尺寸的程序界面,最大化之后会按照比例整体放大,应该算另一个缺陷。

CVI采用了回调函数的方式响应控件触发事件,提供了WYSIWYG(所见即所得)的界面编辑器,为了简化编程,提供了运行功能,直接显示触发控件之后产生的事件,便于编写响应函数。

有了这样一个方便的类库,我们就可以编写图形界面应用程序了,再也不需要去学习简陋粗暴的MFC了,不需要为了去学习编写图形界面而学习一门新的编程语言(Java,C#,Javascript,C++)。
时间上所有的同类技术都有着共通性,一通百通。GUI类库同样如此,入门了一门GUI类库之后,对于其他类库的理解也就很容易了。

有了界面编程的经验对于OOP编程同样有巨大的好处,拿他作为您踏上OOP道路,转变面向过程到面向对象思想的一个过渡也是非常有意义的事情,能够大大的减少学习的痛苦。

后记

本人就是计算机相关专业毕业生,在大学期间学习的第一门编程语言便是C语言,但是C语言来说,本身较为适合系统编程,抽象能力不足不说,还不提供GUI类库,这让那个时候的我编写的程序只能局限在命令行窗口之中,让人十分苦恼。没有那个爱好计算机的不愿意编写那些花哨的界面程序的。至少对于绝大多数程序来说,动动鼠标就绝对够用了。

但当时眼界不够开阔,着手学习了Java,然而由于完全自学,因此各种痛苦不必细说,开发过程中面向过程与面向对象的转换实在是苦不堪言。

在这里将Labwindows/CVI介绍给大家,希望各位同仁们能够看到本人这篇文章,在学习的路上少一些痛苦,多一些快乐。

你可能感兴趣的:(通用编程经验,C/C++,编程经验,c语言,gui,图形界面,界面设计,跨平台)