Windows核心编程:进程创建与终止详解

2 下载量 72 浏览量 更新于2024-08-29 收藏 157KB PDF 举报
在《Windows核心编程系列》中,进程的建立和终止是基础且关键的概念。进程是操作系统中的核心概念,作为资源管理和分配的基本单元,其核心在于进程内核对象。进程内核对象是一种数据结构,与进程紧密相关,类似于学生的学籍,操作系统通过它来管理和控制进程,如记录进程状态、资源使用情况等。进程通常包括两个主要组成部分: 1. 内核对象:这是操作系统用于管理进程的关键组件,它存储了关于进程的重要信息,比如进程ID、状态、资源占用等。内核对象同时也是操作系统维护进程统计信息的载体,例如内存使用、线程数等。 2. 地址空间:进程拥有独立的地址空间,其中包括执行文件或DLL模块的代码和数据。这确保了不同进程之间数据的隔离,每个进程都有自己的虚拟内存空间,避免了资源冲突。 Windows操作系统支持两种主要的应用程序类型:GUI(图形用户界面)程序和CUI(控制台用户界面)程序。GUI程序通常以窗口形式呈现,如桌面应用,而CUI程序则是没有图形界面,仅通过命令行进行交互。在使用Visual C++ (VC) 开发应用程序时,通过链接器开关来指定应用程序类型,例如/SUBSYSTEM:CONSOLE用于CUI程序,/SUBSYSTEM:WINDOWS用于GUI程序。 程序的执行并非从入口函数开始,实际上有一个称为启动函数的前置步骤。这个函数负责初始化C/C++运行库、构建全局和静态对象,以及处理命令行参数和环境变量。在ANSI字符集下,GUI程序的启动函数为WinMainCRTStartup,CUI程序为mainCRTStartup;而在Unicode字符集中,相应函数带有前缀w,如wWinMainCRTStartup。 例如,在控制台应用程序中,命令行参数可以通过`argv`获取,这是因为启动函数在程序真正执行WinMain(或main)之前就已经完成了这些准备工作,如解析命令行参数、设置环境变量等。因此,理解进程内核对象、地址空间、启动函数以及不同类型的程序启动机制,对于深入学习Windows编程至关重要。