阅读E文Windows Programming 5th 笔记:第一章,Windows编程起步

来源:互联网 发布:数控套料软件 编辑:程序博客网 时间:2024/04/24 15:25

从今个开始看英文版的Windows programming 5th,这是大侠Petzold的经典巨作,以前看中文版的没有看完,觉得翻译的很别扭!现在从头开始,看大侠的英语原作,希望收获会很大,当然,这是肯定的,重量级老大的文笔当然是没有的说。

学习Windows Programming,那么我应该首先搞清楚的是,Windows的核心概念是什么,它的架构是什么,然后基于它的应用程序应当是什么样的构架呢?如何利用它提供的平台呢?

进行Windows编程的基础包括,完整的Windows系统使用经验,CC++编程经验也比较丰富了,(也可以基于其他库进行过Windows程序的开发),现在应该更加深入研究如何从纯的Win32平台去开发程序的时候了。

要了解Windows系统的核心概念,必须看看它的发展历程,那样才可以清楚的了解这些概念的来历。

MS-DOS,命令行接口 1981

Windows 1.0 窗口界面 1985

Windows 2.0 Overlapping窗口、菜单、对话框 1987

Windows 386 Virtual address memory and multitask

Windows 3.0 支持对Intel 286 386486未处理器的16位保护模式操作,扩展可访问内存大小。1990

OS/2 PM 1988

Windows 3.1 TrueType字体,多媒体、对象连接和绑定,公共对话框, 1993

Windows NT,支持32386486和奔腾处理器,以及支持其他处理器。1993

Windows 95,对NT进行了精简,只支持32位。1995

Windows 98,加入对Internet的支持,改进效率,支持更多硬件。1998

 

98NT都是32位抢占式多任务、多线程图形操作系统。

这就是Windows操作系统的核心概念之一:图形化用户接口GUI

GUI和传统的字符窗口的不同在于,交互不再是单向的了,原有的字符窗口交互流程是:用户-键盘-程序-屏幕。而GUI使得屏幕本身也成为了输入端,屏幕上的各种图形控件,比如按钮、滚动条、菜单、对话框等,用户都可以通过形象的操作这些控件来表达自己的输入数据,所见即所得使得用户和程序的交互感更加直接。此外,所有Windows提供的GUI都具有默认的一致的操作接口,因为这些都是由操作系统自己来完成的。这就大大方便了用户的使用。

关于图形信息的输出,Windows系统做到了不依赖特定显示卡或打印机硬件,它对这些操作进行了封装,提供了统一的接口,开发者无需关心具体的硬件信息。

另外一个核心概念:多任务、多线程

操作系统的多任务能力让用户感觉多个程序可以并行运行,它们由各自的窗口界面,可以在它们之间切换,也可以在其中传递数据。NT98采用抢占式的多任务方式,并且单个程序本身也是可以划分为多线程来并行完成内部任务的。多任务和多线程的后台基础核心概念是强大的内存管理能力,它可以高效移动内存块的数据和代码。这就是虚拟内存管理技术,NT98都是32位的虚拟内存管理。DLL是高效利用内存的一个代码共享的技术产品。

Windows系统的物理布局就是将操作系统的核心子系统功能分别封装在几个DLL中,所有Windows操作都基于这些DLL封装的功能。通常包括三个主要的子系统模块的封装:Kernel,它处理内存管理,文件IO,多任务处理等;User模块提供用户接口以及定义所有的Windows窗口逻辑;GDI模块封装了图形设备接口,提供用户写图形和文字到硬件设备上的功能。

 

总结,Windows系统编程的核心概念:GUI、多任务(多线程以及后台的内存管理能力),它的物理构架是子系统封装的DLL金字塔形式:最底层为Kernel + User + GDI

其实,从本质上讲,几乎所有的现代操作系统都具备这些核心概念和架构,只是实现方式和Windows不太相同罢了。

问题在于,Windows实现的设计架构是什么呢??基于Windows开发程序,到底有什么特别的架构方式呢??

 

问题列表:

l         Windows操作系统核心概念 OK

l         Windows操作系统的物理架构 OK

l         Windows实现的设计架构 (?)

l         Windows应用程序的设计架构 (?)

 
原创粉丝点击