文档详情

Delphi5开发人员指南(三).pdf

发布:2019-10-06约1.09万字共6页下载文档
文本预览下载声明
下载 第3章 Win32 API 本章内容: • 对象—以前和现在 • 多任务和多线程 • Wi n 3 2 内存管理 • Wi n 3 2 的错误处理 本章介绍Win32 API和Wi n 3 2系统。还要讨论Wi n 3 2系统的功能以及它与 1 6位系统在功能上的几个 主要区别。本章内容不是关于Wi n 3 2系统的详细文档,而只是让对Wi n 3 2系统有一个基本的了解。当已 经基本了解Wi n 3 2操作后,就可以在任何需要的时候使用Wi n 3 2系统提供的高级功能了。 3.1 对象:以前和现在 对象这个术语可以用于不同的场合。我们谈论 Wi n 3 2 的体系结构时,实际上并不是指面向对象编 程或组件对象模型 ( C O M ) 中的对象。在不同的场合对象具有完全不同的含义,甚至 1 6位Wi n d o w s 中的 对象与Wi n 3 2 中的对象也有细小的差别,这使对象的概念很容易混淆。我们在这里重点介绍 Wi n 3 2 中的 对象。 Wi n 3 2环境中有两种基本的对象类型:内核对象和 G D I /用户对象。 3.1.1 内核对象 内核对象是Wi n 3 2系统原有的,包括事件、文件映射、文件、邮件槽、互斥、管道、进程、信号 灯和线程。Win32 API 包含有针对不同内核对象的函数。在讨论内核对象之前,我们先要讨论进程的 概念,因为这是理解Wi n 3 2环境如何管理对象的基础。 1. 进程和线程 可以认为一个进程就是一个正在运行的应用程序或一个应用程序的实例。因此,在 Wi n 3 2环境中 可以同时激活几个进程。每个进程可以为它的代码和数据获得 4 G B 的地址空间。在这4 G B地址空间中, 存在着已分配的内存、线程、文件映射等。另外,由进程调用的动态链接库也在进程的地址空间中。 这章后面的3 . 3节“Wi n 3 2 内存管理”将详细介绍Wi n 3 2 的内存管理。 进程是惰性的。换句话说,进程本身并不执行任何代码。然而,每个进程拥有一个主线程,由 主线程在进程的环境中执行代码。一个进程可以拥有几个线程;但是,一个进程只能有一个主线 程。 注意 线程是一种操作系统对象,代表着一个进程中要被执行的代码的路径。每一个Wi n 3 2应 用程序至少有一个线程—通常称为主线程或默认线程—但应用程序可以自由地创建其他线 程来执行其他任务。第11章“编写多线程应用程序”将进一步介绍线程的用法。 当一个进程被创建后,系统就会为它创建一个主线程。如果需要的话,该主线程还可以创建其他 线程。Wi n 3 2系统把C P U时间片分配给这些线程。 表3 - 1显示了Win32 API 中有关进程的函数。 7 4 第一部分 快速开发的基础 下载 表3-1 进程函数 函 数 用 途 C r e a t e P r o c e s s ( ) 创建进程及其主线程。该函数代替Windows 3.11 中使用的Wi n E x e c ( )函数 E x i t P r o c e s s ( ) 退出当前进程,并终止与此进程有关的所有线程 G e t C u r r e n t P r o c e s s ( ) 返回当前进程的句柄。但该句柄只能认为是当前进程句柄的副本。真正的 进程句柄是通过调用 D u p l i c a t e H a n d l e ( ) 函数获得的 D u p l i c a t e H a n d l e ( ) 复制一个内核对象的句柄 G e t C u r r e n t P r o c e s s I D ( ) 返回当前进程的I D ,它在整个系统中唯一地标识一个进程,直到该进程终 止 G e t E x i t C o d e P r o c e s s ( ) 返回指定进程
显示全部
相似文档