【编程基础第七讲】如何编写有界面的程序?

存在问题:

好多小伙伴都有一个疑问,我我们学编程貌似都是看输出,怎么才能搞个像window上程序带个又界面的,眼见为实嘛

解决方案:

很多群友都在问学习了C语言,怎么画界面呢?确实,C语言本身基本没有提供画图的函数,早期的TurboC还有划线等函数,现在都不能用这些函数了,为什么呢?

其实C语言默认情况下是控制台程序,所以要画图从模式上就不支持。而且从理论上说不支持也是对的,因为画图完全是一个图形库的事情,跟语言都没有啥关系。有人说Java、C#、VB等可以画图啊,那是因为这些语言的底层调用了相应平台下的图形库函数。比如windows下的,不管你用什么语言,下面调用的最终都是DirectX图形接口,它的上面就是封装的Windows GDI图形接口。

一般说来,图形库中的函数本身就相当于API函数,既然是API,显然是不属于编程语言的一部分,而是系统平台的一部分,本质上图形库都是显存的操作,在高级系统中,只有操作系统这样的平台才会去管理显存,所以从这个角度上也说明图形系统是属于平台的。

那我们学习了C语言怎么去画图呢?有了上面的答案其实就很清楚了,就是学习你编程的平台的图形库。至于学习什么图形库,就看你的平台和想使用的库,比如Windows专有的DirectX、GDI,还有可移植到各种平台下的OpenGL、SDL、Qt等常用的库,但是这些库的层次还是不一样的,越高层用起来就越简单,但控制的灵活度也小一些。另外复杂程度也往往和强大成正比,像DirectX和OpenGL最强大,还能支持3D,基本上垄断了游戏的图像库,但是用起来也最复杂,而GDI、SDL、Qt等这些图形库往往比较简单就能完成。

有了上面的了解,相信初学者在学习完C/C++之后,根据你的情况去好好学习一下图形库。Linux下可以学习SDL,对于很多在Windows下运行的程序,可以学习Windows GDI函数,十分方便就能学会图形界面的编写。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏宏伦工作室

基于维基百科的中文词语相关度计算

19830
来自专栏牛客网

京东【Java实习】海外党远程二面

惯例先放一面面经链接:https://www.nowcoder.com/discuss/74319 直入正题: 1. JVM内存模型说一下? 2. GC回收的...

39370
来自专栏逸鹏说道

借网站日记分析~普及一下Pandas基础

对网站日记分析其实比较常见,今天模拟演示一下一些应用场景,也顺便说说Pandas,图示部分也简单分析了下

7330
来自专栏程序人生

谈谈状态机

题记:上周做 BBL 里讲了我们 Tubi TV 内部做 DSL 的一些简单实践,大家反馈不错。有同事建议我给大家先补补 FSM,之后再进阶 CFG,可能会更顺...

39470
来自专栏牛客网

2018年5月23日滴滴新锐实习电话面试,开发岗位

23200
来自专栏钱曙光的专栏

一周极客热文:程序员必须知道的10大基础实用算法及其讲解

程序员必须知道的10大基础实用算法及其讲解,包括: 快速排序算法; 堆排序算法(Heapsort):是指利用堆这种数据结构所设计的一种排序算法; 归并排序(Me...

22170
来自专栏熊彪的专栏

精准测分:基于函数调用关系链的用例消振算法 ( 上帝视角 )

地球文明不是孤岛,函数呢?从静态的视角观察函数,她只是一个一个在文件中孤立存在的代码片段。但从动态的视角观察,函数与函数之间就天然的发生了关联。这个关联是怎么产...

25200
来自专栏数据小魔方

R语言数据清洗实战——世界濒危遗产地数据爬取案例

最近重复新翻阅R语言领域唯一一本关于网络数据采集的参考书——《基于R语言的自动数据收集》,开篇就是一个数据爬取的案例。 尽管之前已经粗略的看过一遍,但是仍感书中...

66660
来自专栏CDA数据分析师

为什么说 Python 是数据科学的发动机(二)工具篇(附视频中字)

毋庸置疑,Python是用于数据分析的最佳编程语言,因为它的库在存储、操作和获取数据方面有出众的能力。 在PyData Seattle 2017中,Jake V...

246100
来自专栏点滴积累

geotrellis使用(四十二)将 Shp 文件转为 GeoJson

原因很多,最重要的原因是我转行了。是的,我离开了开发岗位,走向了开发的天敌-产品经理。虽然名义上是产品经理,但是干的事情也很杂,除了不写代码,其他的都干,经常还...

20620

扫码关注云+社区

领取腾讯云代金券