在Windows下创建进程和线程的API.doc

在Windows下创建进程和线程的API.doc

ID:50121120

大小:282.50 KB

页数:12页

时间:2020-03-04

在Windows下创建进程和线程的API.doc_第1页
在Windows下创建进程和线程的API.doc_第2页
在Windows下创建进程和线程的API.doc_第3页
在Windows下创建进程和线程的API.doc_第4页
在Windows下创建进程和线程的API.doc_第5页
资源描述:

《在Windows下创建进程和线程的API.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.利用API在Windows下创建进程和线程前言:  谈到在Windows创建线程的例子,在网上的很多的参考都是基于MFC的。其实,就操作系统实验这个前提而言,大可不必去碰那个大型的MFC的框架。在Windows命令控制台下可创建进程及线程,做些简单的进程及线程的测试程序。1、实验准备:  要实验的Windows下的多线程实验,应做如下准备:  a)在新建中选”Win32ConsoleApplication”的Anemptyproject  b)选”工程”的”设置”选项,在”设置”中选择“C/C++”标签,在”ProjectOption”中,将”MLd”参数改成“MTd

2、”(如图1)。图1选项以上两步对实验成功至关重要,否则,即是代码无误,在连接时同样会出现问题。2、Windows下进程的创建:  Windows的进程和线程模型被描述成”多进程,基于单进程的多线程”。  在创建一个线程时,Windows会做大量的工作---创建一个新的地址空间,为进程分配资源以及创建一个基线程。页脚.  CreateProcess函数的原型如下:CreateProcess( LPCTSTRlpApplicationName, //pointertonameofexecutablemoudle LPTSTRcmdLine, //pointertocomma

3、ndlinestring LPSECURITY_ATTRIBUTESlpProcessAttributes, //pointertoprocesssecurityattributes LPSECURITY_ATTRIBUTESlpThreadAttributes, //pointertothereadsecurityattributes BOOLbInheritHandle, //handleinheritanceflag DWORDdwCreationFlag,//variouscreationflags LPVOIDlpEnviroment,//Enviroment

4、variable LPCTSTRlpCurrentDirectory,//Child'scurrentdirectory LPSTARTUPINFOlpStartupInfo,//pointertoStartupInfo LPPROCESS_INFORMATIONlpProcessInformation //pointertoPROCESS_INFORMATION)  虽然有很多参数,不过在现阶段的实验级别,大多数参数只要用默认值即可。下面要做的关于Windows使用进程的实验,在Linux系统下,可以使用类似:  execve(char*cmdName,char*cm

5、dArgu)的语句从一个程序中去执行其它的程序。  而如果在Windows下,当使用CreateProcess去执行相应的功能时,只要去改变cmdLine中的内容即可,其它的参数使用默认值,具体见代码1:  代码1执行的功能是从命令行中启动这个名叫的launch的测试程序,在launch后面应加上保存有需要打开程序路径的文件名:  如在命令行中键入:>launchset.txt  而set.txt中的内容为:C:\WINDOWS\SYSTEM32\CALC.EXEC:\WINDOWS\SYSTEM32\NOTEPAD.EXENEW.TXTC:\WINDOW

6、S\SYSTEM32\CHARMAP.EXE  路径的前半部分为”C:\WINDOWS\”,这当然要视你的Windows系统的类型以及系统盘的存放位置而定。如果是NT或2000的机器,则应使用WINNT./*测试程序1:  示例如何使用进程的launch程序(启动程序),通过在命令行中加载相应的命令文件,去按照命令文件中指定的程序路径打开相应的程序去执行*/页脚.#include#include#include#defineMAX_LINE_LEN80intmain(intargc,char*argv[

7、]){//localvariablesFILE*fid;charcmdLine[MAX_LINE_LEN];//CreateProcessparametersLPSECURITY_ATTRIBUTESprocessA=NULL;//DefaultLPSECURITY_ATTRIBUTESthreadA=NULL;//DefaultBOOLshareRights=TRUE;//DefaultDWORDcreationMask=CREATE_NEW_CONSOLE;//Windowperprocess.LPVOIDenviroment=NUL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。