专栏首页程序员互动联盟【编程基础第七讲】如何编写有界面的程序?

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

存在问题:

好多小伙伴都有一个疑问,我我们学编程貌似都是看输出,怎么才能搞个像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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员到什么时候才能月入三万

    本来想写一篇怎么才能月入过万的,想了想还是三万更有冲击力。毕竟三万是能在一线城市长期待下来的保证。想想当初,小编工作的时候月工资才2200,不及三万的十分之一,...

    程序员互动联盟
  • 中国的黑客究竟有多张狂?

    这个黑客在论坛里张贴了一篇叫做“How to farm Izual in Inferno”的文章(Izual是暗黑破坏神3中的一个boss),里面提供了一个链...

    程序员互动联盟
  • 【答疑释惑】c/c++有办法加快程序进入main()前的速度吗

    一、答案是Yes。 因为在执行main函数之前,程序会进行很多工作,包括调用系统API,初始化环境。 你能触及到的就是全局变量和静态变量,这些初始化工作也都在m...

    程序员互动联盟
  • 如何设置CentOS 7获取动态IP和静态IP

    1.输入“ip addr”并按回车键确定,发现无法获取IP(CentOS 7默认没有ifconfig命令),记录下网卡名称(本例中为ens33)。

    yaohong
  • 大数据投融资周报(9月24日——9月30日 共13起)

    <数据猿导读> 上周大数据领域共发生13起投融资事件,其中包括5家中国企业、4家美国企业、1家印度企业、1家以色列企业、1家新加坡企业以及1家澳大利亚企业,涉及...

    数据猿
  • c#4.0中的不变(invariant)、协变(covariant)、逆变(contravariant)小记

    不变/协变/逆变,4.0中的这几个概念越念越象绕口令,如果单纯死记硬背,就算记住了,时间长了还是会忘记的。 园子里已经有不少高手撰文写过这个话题:比如“装配脑袋...

    菩提树下的杨过
  • 如何设置CentOS 7开机自动获取IP地址详解

    本例中以CentOS 7举例说明如何设置Linux开机自动获取IP地址和设置固定IP地址。

    yaohong
  • 占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题

    持续集成(Continuous Integration,简称CI)是一种软件开发实践:许多团队频繁地集成他们的工作,每位成员通常进行日常集成,进而每天会有多种集...

    DevOps时代
  • 创建并运行一个新的 Laravel 项目

    经过 PHP 入门到实战系列的基础学习,接下来我们就可以正式开始 Laravel 框架的学习和使用了。而这一切都需要从创建一个新的 Laravel 项目开始。

    学院君
  • ARM公司发布专注人工智能与机器学习的DynamIQ平台

    科技博客ExtremeTech发布消息,称美国知识产权供应商ARM公司发布了专注于人工智能与机器学习的DynamIQ平台。 近十年来,从Cortex-A8开始,...

    人工智能快报

扫码关注云+社区

领取腾讯云代金券