shfzhzhr 发表于 2013-1-26 13:32:53

进程(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]
查看完整版本: 进程(1)——进程句柄和命令行