Win32程序设计,又常常被叫做SDK/API编程,现在使用Win32的程序员确实已经很少了,主要是因为用win32写代码比用vc写起来还累,但是Win32编程常常又是非常有效率的,现在用的比较多的就是在编写游戏中.很多人在学习VC的时候总是抱怨vc太难了,有点老虎吃天的感觉,总是不知道如何下口,甚至有些人用了一两年都还没有入门,如果你有这样的感觉,不如先去读一下关于Win32 SDK的资料,我想对你是有很大帮助的,下面我要发的这篇文章呢并不是偶写的,是偶师傅写的,后来我用MFC的面向对象的思想封装过SDK的结构化程序,但是一直没有对此做一个总结,有时间偶一定会补上啦!!!!
Windows程序设计的基本概念
程序设计:基于操作系统和语言系统的资源,运用网络与数据库的技术,针对问题的专业需求,按照软件工程的规范,利用语言系统的语法机制,描述求解问题的过程。我们把操作系统资源、语言系统资源、网络技术、数据库技术、专业需求、软件规范和语法规则称为程序设计逻辑的七大要素。通常所谓C++程序设计、Fortran语言程序设计、PASCAL语言程序设计等是从语法的角度学习程序设计的基本语法规则和程序设计方法;所谓VC++程序设计比较符合上述我们所述的程序设计思想,主要是从基于操作系统资源的角度运用语言系统的资源进行程序设计,需要具备C++面相对象的良好功底和Win32 API资源透彻的理解;我们目前进行的Windows程序设计,是从操作系统资源的角度学习,这是对Windows专业程序开发最本质的学习,是我们从非专业迈向专业大门最有力的开始。
Win32 API:如果把操作系统比作软件大厦,那么Win32 API就是建造32位Windows操作系统(Windows 9x、Windows NT、Windows 2000、Windows me、Windows CE、Windows XP)的预制件,它是Microsoft公司为其32位的操作系统平台的软件开发、为软件开发人员提供的操作系统资源的使用接口或称应用程序编程接口(Application programming interface),所覆盖的领域包括:Windows系统管理、系统信息、系统安全、进程、线程、动态链接、内存管理、文件系统、键盘和鼠标输入、GDI对象、网络通信、资源管理、打印、程序调试、异常处理等等。它们以动态链接库的形式,存在于操作系统中,供操作系统和Win32应用程序调用。
Win32平台:支持Win32应用程序运行的平台,诸如:Win32S、Windows 9x、Windows NT、Windows 2000、Windows me、Windows CE、Windows XP等,如果Win32应用程序比作CD的音乐盘片,那么CD的平台就是CD随身听、VCD影碟机、DVD影碟机了。
任务:运行在操作系统上的应用程序,即操作系统执行的任务。
多任务:在同一个时间段里执行多个任务,即多任务。Windows 3.x是一个协同式的多任务的操作系统;32位的Windows是基于进程、线程优先级的分时的多任务操作系统。
进程:操作系统构造任务、分配资源的机制,也可以理解为操作系统关于任务执行、调度和资源分配的基本单位;是程序代码、数据和资源的集合,这里的资源包括:地址空间资源、CPU时间资源(线程)、内存资源、文件资源、通讯资源、显示资源等等。Win32应用程序的代码、数据及资源分布在4GB的地址空间中,操作系统分配给进程的线程资源驱动程序的运行,程序在内存运行。
线程:操作系统驱动进程的机制即线程,也可以理解为操作系统关于CPU时间资源的分配单位,是线程驱动进程的运行。一个操作系统可以同时运行多个进程,一个进程中可以有多个线程。进程和线程是有优先级的。Win32的应用程序通过基于优先级的多进程、多线程的机制,实现抢先式多任务。这种抢先的能力水平,由进程和线程的优先级赋予。
事件:广义地讲,发生在计算机系统中的行为和操作;狭义讲,操作系统、用户施加给软件对象(广义的可理解为任务,狭义的可理解为软件窗口对象)的行为和操作。
消息:事件的程序描述即消息,程序中的消息描述类似日常工作中的事件日志,从时间、地点、人物、事件、事由等方面描述当日发生的事件;从另一个角度讲消息是驱动窗口对象动作的指令,从总体上可以把消息分为用户消息、控制消息、系统消息和程序消息四类。
消息队列:用户和操作系统对软件对象施加的行为和操作的描述列表,操作系统以线程为单位,为线程创建的窗口对象建立消息队列,即与某个窗口对象有关的消息,操作系统将消息发送到创建该窗口对象的线程的消息队列中。
消息循环:从消息队列中检索消息的过程。
窗口对象:一个能够接受和处理操作系统和用户所施加的操作和行为的屏幕上可视的矩形区域,是基于图形对象方式的操作系统构造交互式程序的一种机制。
窗口类:同一类窗口对象的程序描述,用WNDCLASS结构描述属性,用窗口过程描述行为功能,创建一个窗口对象,首先必须成功地向操作系统注册窗口类。
窗口过程:窗口对象对事件和消息的处理过程即窗口过程,又叫窗口函数;窗口对象的所有行为和功能都定义在窗口过程中。
句柄:Win32对象标识的通称,具体表现为一个32位的无符号的整数值,通称可用HANDLE 来标记。这里Win32对象为诸如:内核对象(进程对象HProcess、线程对象HThread、文件对象HFile、文件映射对象、邮件槽对象、事件对象、信号量对象、互斥对象)、GUI对象(窗口对象HWND、菜单对象HMENU、光标对象HCURSOR、图标对象HICON等)、GDI对象HGDIOBJ(HDC、HPEN、HBRUSH、HFONT)等等等等,还有好多好多!
原文地址:http://old.blog.edu.cn/user2/lichangpo/archives/2006/1298419.shtml