- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows体系及编程实验指导书课案
《》名称:学 时:
一、目的二、要求、进程的创建通过CreateProcess()函数来实现,CreateProcess()通过创建一个新的进程及在其地址空间内运行的主线程来启动并运行一个新的程序。具体地,在执行CreateProcess()函数时,首先由操作系统负责创建一个进程内核对象,初始化计数为1,并立即为新进程创建一块虚拟地址空间。随后将可执行文件或其他任何必要的动态链接库文件的代码和数据装载到该地址空间中。在创建主线程时,也是首先由系统负责创建一个线程内核对象,并初始化为1。最后启动主线程并执行进程的入口函数WinMain(),完成对进程和执行线程的创建。BOOL CreateProcess(
LPCTSTR lpApplicationName, // 可执行模块名
LPTSTR lpCommandLine, // 命令行字符串
LPSECURITY_ATTRIBUTES lpProcessAttributes, // 进程的安全属性
LPSECURITY_ATTRIBUTES lpThreadAttributes, // 线程的安全属性
BOOL bInheritHandles, // 句柄继承标志
DWORD dwCreationFlags, // 创建标志
LPVOID lpEnvironment, // 指向新的环境块的指针
LPCTSTR lpCurrentDirectory, // 指向当前目录名的指针
LPSTARTUPINFO lpStartupInfo, // 指向启动信息结构的指针
LPPROCESS_INFORMATION lpProcessInformation // 指向进程信息结构的指针
);
(2)进程的获取
进程的定义是为执行程序指令的线程而保留的一系列资源的集合。进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。进程是一些所有权的集合,一个进程拥有内存、CPU运行时间等一系列资源,为线程的运行提供一个环境,每个进程都有它自己的地址空间和动态分配的内存、线程、文件和其他一些模块。
系统快照的获取可以通过Win32 API函数CreateToolhelp32Snapshot()来完成,通过该函数不仅可以获取进程的快照,同样可以获取堆、模块和线程的系统快照。函数的声明如下:
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags, //指定要创建包含哪一类系统信息的快照函数
DWORD th32ProcessID //指定进程的ID号,当设定为0时表示指定当前进程
);
一旦系统得到系统快照句柄,就可以对当前的标识号进行枚举,进程号通过函数Process32First()和Procee32Next()得到,这两个函数可以用于获取系统快照中第一个和下一个系统的信息,这两个函数的声明如下:
BOOL WINAPI Process32First(
HANDLE hSnapshot, // 系统快照句柄
LPPROCESSENTRY32 lppe // 指向结构体PROCESSENTRY32的指针
);
BOOL WINAPI Process32Next(
HANDLE hSnapshot, // 系统快照句柄
LPPROCESSENTRY32 lppe // 指向结构体PROCESSENTRY32的指针
);
(3)进程的终止
终止进程也就是结束进程,让进程从内存中卸载。进程的终止的原因一般有4种。
主线程的入口函数返回。
进程中的一个线程调用ExitProcess函数。
次进程中的所有线程结束。
其他进程中又有线程都结束。
要结束当前进程一般让主线程的入口函数返回。当用户的程序入口函数返回的时候,启动函数会调用C/C++运行期退出函数EXIT,并将用户的返回值传递给它。EXTI函数会销毁所有全局的或静态的C++对象,然后调用系统函数ExitProcess促使操作系统终止应用程序。ExitProcess是一个API函数,它会结束当前应用程序的执行,并设置退出代码,函数声明如下:
Void
您可能关注的文档
最近下载
- 装饰装修工程施工组织方案设计[技术标].docx
- 2024-2025学年河南省郑州市管城区五年级(上)期末语文试卷(全解析版).docx
- 2024子宫内膜癌分子分型临床应用中国专家共识(完整版) .pdf
- 膀胱癌讲课图文ppt课件.ppt
- 2023-2024学年湖南长沙长郡中学八年级物理第一学期期末教学质量检测试题含解析.pdf VIP
- 2024年重庆高考化学试卷(解析版).docx
- 三星数码相机 SAMSUNG WB110说明书.pdf
- DG∕T J 08-2004A-2014_太阳能热水系统应用技术规程.pdf
- 电动车棚施工协议集合4篇.docx
- 浅析工程造价管理与投资控制.pdf VIP
文档评论(0)