Windows 程序基础
Posted 天空下骄傲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 程序基础相关的知识,希望对你有一定的参考价值。
在Windows中,程序的基本单位不是过程和函数,而是窗口。一个窗口是一组数据以及处理这些数据的窗口函数的集合。如果从面向对象的角度考虑,窗口本身就是一个对象。Windows程序的执行过程本身就是窗口等对象的创建、处理和消亡的过程。Windows中消息的发送可以理解为一个窗口对象向其他窗口对象请求服务的过程。因此。面向对象的编程思想是进行windows程序设计的首选。
一.句柄
微软将这种描述了事物的数据结构实例都叫做对象。微软公司虽然在Windows系统中定义了这些数据结构,但并未向用户公开,因此,为了使用户应用程序可以创建并获得这种对象,Windows在API中提供了相应的服务函数,用户通过调用这种函数获得由系统创建的对象。由于使用这种方法创建的对象位于内核内存空间,故称为内核对象。但是必须注意,用户调用API函数创建内核对象成功之后,函数返回的是Windows操作系统为这个内核对象所编制的一个4字节的整数临时编号。为了程序的可读性,并根据这个编号的用途,Windows对这个整型数据变量定义了一个别名:“句柄(Handle)”。
一个句柄就表示一个内核对象。
之所以叫做句柄类型,因为它与生活中刀柄,锅柄的作用相似,意思就是用户只要获得了句柄,那么也就获得了安装在内核对象上的“手柄”,就能在不直接接触这个对象的情况下进行操作。从使用的角度看,句柄与指针的功能相似,都是指向一个对象或存储区域,但指针是一个地址,而句柄只是一个整型形式的编号且不能像指针那样参与运算。
1.HINSTANCE句柄
HINSTANCE句柄——应用程序实例句柄。
在操作系统眼里,应用程序是一个代码的运行过程,是它负责运行和管理的一个对象。因此操作系统必须在程序运行之前为这个程序建立一个结构体变量,以便在程序运行起来后记录该程序的运行进度、状态、内存占用情况、文件和外设的使用情况的相关数据,并根据这些数据对程序的运行进行管理。Windows操作系统是通过这个与程序代码相关联的数据结构变量来掌控一个程序的运行。Windows中的这种以表示一个程序运行过程的内核对象,叫做进程对象或进程,也叫做“进程控制块”。在Windows中,这种进程控制块的类型就是HINSTANCE。
HINSTANCE类型句柄看成是Windows定义的一个新的数据类型——程序类型,而其对象则相当于是一个程序类型的变量,这个变量就代表一个正在运行的程序,Windows每运行一个程序就会把该程序的指针赋予这个变量,程序可以使用这个变量对一个程序进行操作。注意:如果用户启动了两次Word应用程序,那么在系统中就有两个Word的应用程序实例句柄存在。
以上是关于Windows 程序基础的主要内容,如果未能解决你的问题,请参考以下文章
Java程序设计基础--环境搭建及第一个java程序--Windows开发环境