进程(1)——进程句柄和命令行
进程实例句柄加载到进程地址空间的每一个可执行文件或者DLL文件都被赋予了一个独一无二的实例句柄。可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。在需要加载资源的函数调用中,一般都要提供此句柄的值。例如,为了从可执行文件的映像中加载一个图标资源,就需要调用下面这个函数:
HICON LoadIcon (
HINSTANCEhInstance,
PCTSTRpszIcon);
LoadIcon函数的第一个参数指出了哪个文件(可执行文件或DLL文件)包含了想要加载的资源。许多应用程序会将(w)WinMain函数的hInstanceExe参数保存在一个全局变量中,使其可以很容易被可以执行文件的所有代码访问到。
PlatformSDK文档指出,有的函数需要一个HMODULE类型的参数。下面的GetModuleFileName函数就是一个例子:
DWORDGetModuleFileName (
HMODULEhInstMOdule,
PTSTRpszPath,
DWORDcchPath );
<div style="border-left: none; border-right: none; padding: 1.0pt 0cm 1.0pt 0cm;">说明 事实上,HMODULE和HINSTANCE完全是一回事。如果某个函数的文档指出需要一个HMODULE参数,我们可以传入一个HInstance,反之亦然。之所以会有两种数据类型,是由于在16位windows中,HMODULE和HINSTANCE表示不同类型的数据。
页:
[1]