标签:使用 strong 文件 数据 代码 sp on c 管理
进程的内容包括:
1. 进程内核对象 ,对用户来说是进程句柄
2. 进程运行环境: 如进程当前驱动器
首先进程的定义是, 一个正在运行的程序的一个实例。
进程由两部分组成:
<1>进程内核对象,用于保存进程信息,操作系统用它来管理进程
<2>一个地址空间,用于存放可执行文件或DLL模块的代码和数据, 以及动态分配的内存,线程的栈和堆。
每个进程至少有一个线程, 当系统创建一个进程时,会自动为进程创建第一个线程,称为主线程。然后由主线程创建更多的线程。
加载到进程地址空间的每一个可执行文件或者DLL文件都被赋予一个独一无二的实例句柄。可执行文件的实例句柄被当作WinMain函数的第一个参数 hInstance传入。 在需要加载资源的函数调用中,一般都要提供此句柄的值。
HMODULE 和 HINSTANCE 完全是一回事, 如果某个函数的文档之处需要一个HMODULE参数,我们可以传入一个HINSTANCE,反之亦然。
WinMain的hInstance参数的的值实际是一个内存基地址:系统将可执行文件的映像加载到进程地址空间中的这个位置。可执行文件的映像被加载到哪一个基地址,是由连接器决定的。
可以使用 HMODULE GetModuleHandle(PCTSTR pszModule) 来返回一个句柄/基地址
pszModule是一个以0为终止的字符串,它指定在主调进程的地址空间中加载的一个可执行文件或DLL文件的名称。
若pszModule 参数为NULL, 则GetModuleHandle()将返回 主调进程的可执行文件的基地址。
但GetModuleHandle(NULL)代码 若是在DLL中,返回值仍是可执行文件的基地址,而非DLL文件的基地址。
进程当前所在的驱动器和目录:
如果不提供完整的路径名,各种windows函数会在当前驱动器的当前目录查找文件和目录。
标签:使用 strong 文件 数据 代码 sp on c 管理
原文地址:http://www.cnblogs.com/disemboltura/p/3952873.html