引言:
学习C语言很久了,是不是一直在跟黑乎乎的屏幕打交道,像QQ、360、VC6.0这样的软件都是带界面的,怎么做到的呢?
前面我们讲的”黑屏“叫控制台应用程序(Win32 Console Application),也称DOS程序(或MS-DOS程序)。DOS是早期的命令式操作系统,很难做出漂亮的界面,除了开发人员,”黑屏“对普通用户很不友好。
带界面的程序叫Windows应用程序(Win32 Application)。Windows是一款现代操作系统,带有丰富的交互界面,使用简单,无需记忆繁杂的命令。
使用C语言可以开发出Windows应用程序,也就是带界面的程序,只是绝大部分C语言教程没有讲,它们只讲了基本语法,让很多初学者认为学C语言没用,什么都做不出来。
其实不是这样的,C语言只是一种工具,需要与Windows系统结合,借助Windows提供的函数才能开发出漂亮的程序。
Windows API 编程、Windows编程、Windows SDK 编程是一个概念。
什么是windos编程?
在C语言中,使用fopen()函数可以打开一个文件,感觉非常简单。文件保存在硬盘上,要经过复杂的处理才能显示,这些细节对我们来说是透明的,由操作系统完成。也就是说,我们调用fopen()函数来通知操作系统,让操作系统打开一个文件。
那么,我们如何告诉操作系统打开文件呢?
看似简单的操作到底层都非常复杂,打开文件首先要扫描硬盘,找到文件的位置,然后从文件中读取一部分数据,将数据放进I/O缓冲区,放进内存;这些数据都是0、1序列,还要对照ASCII表或Unicode表”翻译“成字符,再在显示器上显示出来。这个过程如果要让程序员来完成,那简直是噩梦!
怎么办呢?Windows想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成动态链接库(DLL),随Windows一起发布,程序员只需要简单地调用这些函数就可以完成复杂的工作,让编程变得简单有趣。
这些封装好的函数,叫做 API(Application Programming Interface),即应用程序编程接口。
API 函数以C语言的形式向外暴露,可以通过C语言直接调用。
除了函数,Windows 还预先定义了很多数据类型(使用C语言的 typedef 关键字定义)。广义上来说,这些数据类型也是 API 的一部分。
API 屏蔽了很多细节,大大简化了程序员的工作,这就是操作系统的威力,不但让普通用户使用方便,也让程序员如释重负。
在Windows上运行的程序(包括MS-DOS程序),本质上都是通过调用Windows API来完成功能的,包括QQ、360、VC6.0等,别看这些团队牛,也不可能从底层做起,那简直不可想象。
C语言也一样,也是调用Windows API,fopen() 函数就是通过调用 CreateFile() 函数实现的。CreateFile() 是Windows API中的一个函数,可以用来打开或创建文件。
通常所说的 SDK 编程就是直接调用API 函数进行编程。SDK 是 Software Development Kit 的缩写,即软件开发工具包。
Windows API 函数成千上万,详细了解每一个函数的用法是不可能的,也是完全没有必要的。只需知道哪些功能由哪些API 函数提供就行了,等使用它们时再去查阅帮助文件。
带界面的程序的专业称呼是GUI程序。GUI 是 Graphical User Interface 的简写,即图形用户界面。教你使用 Windows API 来编写GUI程序,编程语言为C语言。
你或许学C语言很久了,没什么感觉,可能学python都可以抓取网站的数据了,C语言还是默默无声。
不要放弃,今天我们介绍了windows编程,windows编程就是运用C语言,我们的底层系统C语言的杰出作品。
领取专属 10元无门槛券
私享最新 技术干货