首页 > 代码库 > Windows核心编程读书笔记-第四章进程
Windows核心编程读书笔记-第四章进程
1.进程组成
- 一个内核对象,操作系统用它来管理进程。
- 一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。此外,它还包含动态内存分配,比如线程堆栈和堆的分配。
2.一个进程可以有多个线程,所有线程都在进程的地址空间中“同时”执行代码。每个进程至少要有一个线程来执行进程地址空间包含的代码。
3.用Microsoft Visual Studio来创建一个应用程序项目时,集开发环境会设置各种链接器开关,使链接器将子系统的正确类型嵌入最终生成的可执行文件。对于CUI程序,这个链接器开关是/SUBSYSTEM:CONSOLE,对于GUI程序,则是/SUBSYSTEM:WINDOWS
4.应用程序类型和相应的入口点函数
应用程序类型 | 入口点函数(入口) | 嵌入可执行文件的启动函数 |
处理ANSI字符和字符串的GUI应用程序 | _tWinMain(WinMain) | WinMainCRTStartup |
处理Unicode字符和字符串的GUI应用程序 | _tWinMain(wWinMain) | wWinMainCRTStartup |
处理ANSI字符和字符串的CUI应用程序 | _tmain(Main) | mainCRTStartup |
处理Unicode字符和字符串的CUI应用程序 | _tmain(Wmain) | wmainCRTStartup |
5.启动函数的用途
- 获取指向新进程的完整命令行的一个指针
- 获取指向新进程的环境变量的一个指针
- 初始化C/C++运行库的全局变量。如果包含了StdLib.h,我们的代码就可以访问这些变量
- 初始化C运行库内存分配函数(malloc和calloc)和其他底层I/O例程使用的堆(heap)
- 调用所有全局和静态C++类对象的构造函数
6.加载到进程地址空间的每一个可执行文件或者DLL文件都赋予了一个独一无二的实例句柄。可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。(w)WinMain的hInstanceExe参数的实际值是一个内存基地址:系统将可执行文件的映像加载到进城地址空间的这个位置。
7.HMODULE和HINSTANCE完全是一回事。
8.
Windows核心编程读书笔记-第四章进程
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。