Windows核心编程进程.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows核心编程进程

Windows核心编程 许红星 Email:hxxu@ynu.edu.cn 云南大学软件学院 进程 编写第一个Windows应用程序 CreateProcess函数 终止进程的运行 子进程 枚举系统中运行的进程 编写第一个Windows应用程序 编写第一个Windows应用程序 Wi n d o w s支持两种类型的应用程序。 一种是基于图形用户界面( G U I)的应用程序 另一种是基于控制台用户界面(C U I)的应用程序。 编写第一个Windows应用程序 当使用Microsoft Visual C++来创建应用程序时,这种集成式环境安装了许多不同的链接程序开关,这样,链接程序就可以将相应的子系统嵌入产生的可执行程序。 用于命令行程序的链接程序开关是/ S U B S Y S T E M : C O N S O L E 而用于G U I 应用程序的链接程序开关是S U B S Y S T E M : W I N D O W S。 编写第一个Windows应用程序 编写第一个Windows应用程序 编写第一个Windows应用程序 Wi n d o w s / Visual C++编程新手常犯的错误之一是,当创建新的应用程序时,不小心选择了错误的应用程序类型。例如,编程员可能创建一个新的Wi n 3 2应用程序项目,但是创建了一个进入点函数m a i n。 将m a i n函数改为Wi n M a i n。通常这不是最佳的选择,因为编程员可能想要创建一个控制台应用程序。 用Visual C++创建一个新的Win32 控制台应用程序,并将现有的源代码添加给新应用程序项目。这个选项冗长而乏味,因为它好像是从头开始创建应用程序,而且必须删除原始的应用程序文件。 编写第一个Windows应用程序 单击Project Settings 对话框的L i n k选项卡,将/ S U B S Y S T E M : W I N D O W S开关改为/ S U B S Y S T E M : C O N S O L E。这是解决问题的一种比较容易的方法,很少有人知道他们只需要进行这项操作就行了。 单击Project Settings对话框的L i n k选项卡,然后全部删除/ S U B S Y S T E M : W I N D O W S开关。这是我喜欢选择的方法,因为它提供了最大的灵活性。现在,连接程序将根据源代码中实现的函数进行正确的操作。当用Visual C++的Developer Studio创建新Wi n 3 2应用程序或Wi n 3 2控制台应用程序项目时,我不知道为什么这没有成为默认设置。 编写第一个Windows应用程序 可以在CR t0.c文件中找到这4个启动函数的代码。现在将启动函数的功能归纳如下: 检索指向新进程的完整命令行的指针。 检索指向新进程的环境变量的指针。 对C / C + +运行期的全局变量进行初始化。如果包含了S t d L i b . h文件,代码就能访问这些变量。表4 - 1列出了这些变量。 对C运行期内存单元分配函数( m a l l o c和c a l l o c)和其他低层输入/输出例程使用的内存栈进行初始化。 为所有全局和静态C + +类对象调用构造函数。 编写第一个Windows应用程序 编写第一个Windows应用程序 调用由_ o n e x i t函数的调用而注册的任何函数。 为所有全局的和静态的C + +类对象调用析构函数。 调用操作系统的E x i t P r o c e s s函数,将n M a i n R e t Va l传递给它。这使得该操作系统能够撤消进程并设置它的e x i t代码。 编写第一个Windows应用程序 编写第一个Windows应用程序 G e t M o d u l e H a n d l e函数的两个重要特性 首先,它只查看调用进程的地址空间。如果调用进程不使用常用的对话框函数,那么调用G e t M o d u l e H a n d l e并为它传递“C o m D l g 3 2”后,就会返回N U L L,尽管C o m D l g 3 2 . d l l可能加载到了其他进程的地址空间。 第二,调用G e t M o d u l e H a n d l e并传递N U L L值,就会返回进程的地址空间中可执行文件的基地址。因此,即使通过包含在D L L中的代码来调用( N U L L),返回的值也是可执行文件的基地址,而不是D L L文件的基地址。 编写第一个Windows应用程序 当一个新进程创建时,它要传递一个命令行。该命令行几乎永远不会是空的,至少用于创建新进程的可执行文件的名字是命令行上的第一个标记。 也可以

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档