高等学校计算机操作系统实验报告最终答案 - 图文

发布时间 : 星期一 文章高等学校计算机操作系统实验报告最终答案 - 图文更新完毕开始阅读

运行1-4..exe

1.5 实验总结

1)

首先查找CL.exe文件的位置,然后将所需要的cpp代码文件拷贝到CL.exe所在的文件夹之中,保证在命令行模式执行命令的过程中不会出现找不到文件之类的低级错误。 2)

通过本次实验我还学到了如何在命令行模式下编译C++程序,在直接尝试中遇到许多的错误,在解决错误的过程中我学到: cl.exe要用到MSDev98\\Bin目录下的MSPDB60.DLL 解决第一个错误的方法有以下几种: A. 将电脑目录

C:\\Program Files\\Microsoft Visual Studio\\COMMON\\MSDev98\\Bin下面的

MSPDB60.DLL文件拷贝到CL.exe所在的

文件夹中

B.在“我的电脑--属性--高级--环境变量”中, 添加如下变量: INCLUDE

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include LIB

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Lib

C:\\ProgramFiles\\MicrosoftVisualStudio\\Common\\MSDev98\\Bin;X:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin 3) 第三个错误

fatal error C1034: iostream: no include path set错误。

解决方案:经查找资料可知,应该在命令行中首先运行VCVARS32.BAT 命令如下:

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin>VCVARS32.BAT 然后运行命令成功。

在解决问题的同时我也学到:vcvars32.bat 文件设置适当的环境变量以启用 32 位命令行编译。 4) 关于程序文件

文件 1-1.cpp内容比较简单,就是用C++输出hello,windows 2000

文件1-2.cpp是用Windows.h头文件、WinMain()、MessageBox() API函数、用pragma指令指示编译器/连接器找到User32.lib库文件编写一段小程序,也就是一个简单的windows编程,再次熟悉了WinMain()函数。

文件1-3.cpp是一个简单的进程句柄的应用,在系统中运行的任何进程都可调用GetCurrentProcess() API函数,返回标识进程本身的句柄;再利用GetPriorityClass()获得进程的优先级,用cout函数在屏幕上把得到的进程优先级在屏幕上显示出来。

文件1-4.cpp利用Windows 2000的新特性工具帮助库tlhelp.h来获得当前运行的所有进程的快照。

1.6 实验评价(教师)

实验2

进程的描述与控制

Windows 2000进程的一生

(实验估计时间:100分钟)

2.1 背景知识

Windows 2000 所创建的每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象。每一进程都以调用ExitProcess()或TerminateProcess() API函数终止。通常应用程序的框架负责调用ExitProcess()函数,对于C++运行库来说,这一调用发生在应用程序的main()函数返回之后。 1. 创建进程

CreateProcess()调用的核心参数是可执行文件运行时的文件名及其命令行。表2-1详细地列出了每个参数的类型和名称。

表2-1 实验记录

参数名称 LPCTSTR lpApplivationNAME LPCTSTR lpCommandLine LPSECURIITY_ATTRIBUTES lpProcessAttributes LPSECURIITY_ATTRIBUTES lpThreadAttributes BOOL bInheritHandle DWORD dwCreationFlage LPVOID lpEnvironment LPCTSTR lpCurrentDirectory STARTUPINFO lpStartupInfo LPPROCESS_INFORMATION lpProcessInformation 使用目的 全部或部分地指明包括可执行代码的EXE文件的文件名 向可执行文件发送的参数 返回进程句柄的安全属性,主要指明这一句柄是否应该由其他子进程所继承。 返回进程的主线程的句柄的安全属性 一种标志,告诉系统允许新进程继承创建者进程的句柄 特殊的创建标志(如CREATE_SUSPENDED)的位标记 向新进程发送的一套环境变量;如为null值则发送调用者环境 新进程的启动目录 STARTUPINFO结构,包括新进程的输入和输出配置的详情 调用的结果块;发送新应用程序的进程和主线程的句柄和ID 可以指定第一个参数,即应用程序的名称,其中包括相对于当前进程的当前目录的全路径或者利用搜索方法找到路径;lpCommandLine参数允许调用者向新应用程序发送数据;接下来的三个参数与进程和它的主线程以及返回的指向该对象的句柄的安全性有关。 然后是标志参数,用以在dwCreationFlags参数中指明系统应该给予新进程什么行为。经常使用的标志是CREATE_SUSPNDED,告诉主线程立刻暂停。当准备好时,应该使用ResumeThread() API来启动进程。另一个常用的标志是CREATE_NEW_CONSOLE,告诉新进程启动自己的控制台窗口,而不是利用父窗口,这一参数还允许设置进程的优先级,用以向系统指明,相对于系统中所有其他的活动进程来说,给此进程多少CPU时间。

接着是CreateProcess()函数调用所需要的三个通常使用缺省值的参数,第一个参数是lpEnvironment参数,指明为新进程提供的环境;第二个参数是lpCurrentDirectory,可用于向主创进程发送与缺省目录不同的新进程使用的特殊的当前目录;第三个参数是STARTUPINFO数据结构中所必需的,用于在必要时指明新应用程序的主窗口的外观。

联系合同范文客服:xxxxx#qq.com(#替换为@)