C语言:Windows编程入门

引言:

学习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 编程是一个概念。c/c++初学者有什么不懂的可以问我,一起来学习!——我刚整理了一套2018最新的0基础入门教程和进阶教程,无私分享,加裙六一二五九四四五九, 即可获取,内附:开发工具和安装包,以及系统学习路线图

什么是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/c++初学者有什么不懂的可以问我,一起来学习!——我刚整理了一套2018最新的0基础入门教程和进阶教程,无私分享,加裙六一二五九四四五九, 即可获取,内附:开发工具和安装包,以及系统学习路线图

C语言学来干什么?

你或许学C语言很久了,没什么感觉,可能学python都可以抓取网站的数据了,C语言还是默默无声。

不要放弃,今天我们介绍了windows编程,windows编程就是运用C语言,我们的底层系统C语言的杰出作品。

那些特别牛的软件可以没有C语言吗?请记住:C语言永不过时!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180524A0V5KG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券