Windows 对象
Windows 对象分类
1.Windows的 GUI对象
2.Windows的 GDI 对象
3.Windows的内核对象
Windows对象的句柄和对象机制的意义
1.句柄和对象机制有效的保证了Windows在升级后仍然保持对已有应用程序的极高兼容性
2.句柄和对象机制从根本上保证的了Windows系统的安全性
3.句柄和对象机制把开发人员从繁杂的系统内核构造和细节中解放出来
句柄和对象机制提供给开发人员一个泛类型编程的环境,开发人员只需关心各种对象的概念和功能,而无需关注其细节
对windows对象的认识
windows对象机制就是用面向对象的思想用结构化的语言来做的
windows的对象不像C++的对象机制,在windows系统中他所代表的就是一堆结构体,File
windows的内存是由windows本身维护,windows提供句柄来给用户,让用户来操作内存,
我们本身对内存是不做操作的,对底层的数据结构也不做要求。
句柄在这里可以认为是指针的指针
使用句柄的好处
1. 我们程序向上升级的时候就不会改变。
2. 安全机制,系统的安全。
(一)Windows的 GUI 对象
说明窗口和窗口栈还是内核对象
(二)Windows 的GDI 对象
DC、Pen、Font等等
Windows内核对象与window的GUI和GDI对象
其中GUI和GDI对象一般只能单线程访问,属于线程级的对象,多线程操作或访问这些对象会引起一些问题,当然这些对象也就不需要安全机制来控制了
而内核对象一般允许多进程、多线程访问,属于系统级的对象,因此内核对象需要严格的安全机制来控制管理,同时这些对象也提供了完备的多线程访问控制策略(比如可以利用Wait函数族来等待对象的状态)
在每个内核对象内部都有一个引用计数器记录当前有多少关于该对象的引用个数(其实就是创建了多少个该对象的句柄)
Win32平台上每个进程可以创建内核对象的最大数量是224个(理论值),但实际不可能创建这么多
(三)Windows内核对象(Kernel Object)
Milslot 现在已经放弃了,对于在内核对象之间的通信 多使用 TCP/IP这些
Windows station 和windows 是GUI对象也是内核对象
总之对windows的操作都是使用句柄 Handle
作者:locojyw
email:[email protected]
欢迎大家交流,现在学习windows核心编程,有什么错误请指出
转载注明出处