操作系统(如WindowsMFC)是如何实现UI的?

SIC
  • 8

Windows似乎是使用C语言开发的,但是使用C/C++语言进行Windows开发,需要使用MFC来调用操作Windows系统来实现界面,那么Windows/Linux是如何实现界面的,或者GTK等是如何实现的

回复
阅读 4.7k
1 个回答
✓ 已被采纳

这是一个古老的问题, 学习GUI编程的同学都曾经想过这个问题.

首先, Windows某种意义上可以说是用C语言开发的. 早期开发Windows的最基本工具, 应该是win32api, 深入windows编程你就应该至少看一看win32api, 基本上都是C风格的东西.

MFC是win32api的一个包装, 在当年编译器大战的时候还有OWL之类的东西, 后来微软自己还出过WTL这样的东西, 具体可以google.

你的问题里面还问到了Windows/Linux是如何实现界面的, win32api里有GDI这样的东西, 实现的就是非3D加速的图形API, 大约等于Linux里面的GTK. 如果windows里需要3D加速的话, 你使用的API将超出win32api的范畴, 进入到directX, 通常是d3d. Linux里面GTK下面还有一层, 就是X11, 开始直接和硬件(显卡)对话了.

早期的话开发windows用C是完全没有问题的. 后来windows引入了COM技术, C语言就不给力了需要用到C++. 后来一切都dotNET化了, 继续使用C和C++开发windows程序就变成自虐了: 比如GDI变成了GDI+, 那么开发windows就自然而然的是C#的工作了. 最后windows不是唯一的平台了, 大家的选择就多了: Mac, iOS, Android ...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏