delphi-win32 API

本章内容:

 

以前和现在

多任务和多线程

Win32内存管理

• Win32的错误处理

本章介Win32 APIWin32系统。还要讨Win32系统的功能以及它16位系统在功能上的几个 主要区别。本章内容不是关 Win32系统的详细文档,而只是让Win32系统有一个基本的了解。当已 经基本了Win32操作后,就可以在任何需要的时候使 Win32系统提供的高级功能了。

3.1   对象:以前和现在

 

对象这个术语可以用于不同的场合。我们谈 Win32的体系结构时,实际上并不是指面向对象编 程或组件对象模 (COM)中的对象。在不同的场合对象具有完全不同的含义,甚 16Windows中的对象Win32中的对象也有细小的差别,这使对象的概念很容易混淆。我们在这里重点介 Win32中的 对象。

Win32环境中有两种基本的对象类型:内核对象 GDI/用户对象。

 

3.1.1   内核对象

 

内核对象是 Win32系统原有的,包括事件、文件映射、文件、邮件槽、互斥、管道、进程、信号 灯和线程Win32 API 包含有针对不同内核对象的函数。在讨论内核对象之前,我们先要讨论进程的 概念,因为这是理解 Win32环境如何管理对象的基础。

1. 进程和线程

可以认为一个进程就是一个正在运行的应用程序或一个应用程序的实例。因此, Win32环境中 可以同时激活几个进程。每个进程可以为它的代码和数据获 4GB的地址空间。在4GB地址空间中, 存在着已分配的内存、线程、文件映射等。另外,由进程调用的动态链接库也在进程的地址空间中。 这章后面3.3Win32内存管理”将详细介Win32的内存管理。

进程是惰性的。换句话说,进程本身并不执行任何代码。然而,每个进程拥有一个主线程,由 主线程在进程的环境中执行代码。一个进程可以拥有几个线程;但是,一个进程只能有一个主线 程。

注意  线程是一种操作系统对象,代表着一个进程中要被执行的代码的路径。每一Win32应 用程序至少有一个线通常称为主线程或默认线程但应用程序可以自由地创建其他线 程来执行其他任务。第11章“编写多线程应用程序”将进一步介绍线程的用法。

当一个进程被创建后,系统就会为它创建一个主线程。如果需要的话,该主线程还可以创建其他 线程Win32系统CPU时间片分配给这些线程。

3-1显示Win32 API 中有关进程的函数。

3-1   进程函数

 

                                               

CreateProcess()                                创建进程及其主线程。该函数代Windows 3.11 中使用WinExec()函数

ExitProcess()                                   退出当前进程,并终止与此进程有关的所有线程

GetCurrentProcess()                         返回当前进程的句柄。但该句柄只能认为是当前进程句柄的副本。真正的 进程句柄是通过调用 DuplicateHandle()函数获得的

DuplicateHandle()                            复制一个内核对象的句柄

GetCurrentProcessID()                     返回当前进程ID,它在整个系统中唯一地标识一个进程,直到该进程终

GetExitCodeProcess()                      返回指定进程的退出状态

GetPriorityClass()                            返回指定进程的优先级类别。它和每个线程的优先级类别共同决定了该线 程的基本优先级

GetStartupInfo()                               返回进程创建时被初始化TStartupInfo结构的内容

OpenProcess()                                  返回用进ID指定的进程的句柄 SetPriorityClass()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值