windows笔记-进程的句柄

进程的实例句柄

加载到进程地址空间的每个可执行文件或DLL文件均被赋予一个独一无二的实例句柄(基地址)。可执行文件的实例作为(w)WinMain的第一个参数hinstExe来传递(可执行文件的映像加载到的基地址是由链接程序决定的。)。

 

对于加载资源的函数调用来说,通常都需要该句柄的值。例如,若要从可执行文件的映象来加载图标资源,需要调用下面这个函数:

 
   
HICONLoadIcon( HINSTANCE hinst, PCTSTR pszIcon);

LoadIcon的第一个参数用于指明哪个文件(可执行文件或D LL文件)包含你想加载的资源。

 

注意: HMODULE 与HINSTANCE是完全相同的对象。之所以存在两个数据类型,原因是在16位Windows中,HMODULE 和HINSTANCE用于标识不同的东西。

 

下面的GetModuleHandle函数返回可执行文件或DLL文件加载到进程的地址空间时所用的句柄/基地址:

 
   
HMODULEGetModuleHandle( PCTSTR pszModule);

 

进程的前一个实例句柄

如前所述,C/C++运行期启动代码总是将NULL传递给(w)WinMain 的hinstExePrev 参数。该参数用在16位Windows中,并且保留了(w)WinMain的一个参数,目的仅仅是为了能够容易地转用16位Windows应用程序。决不应该在代码中引用该参数。由于这个原因,我总是像下面这样编写(w)WinMain 函数:

 
  
int WINAPI WinMain(
HINSTANCE hinstExe,
HINSTANCE, PSTR pszCmdLine,
int nCmdShow);

由于没有为第二个参数提供参数名,因此编译器不会发出“没有引用参数”的警告。

 

本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/08/31/1814262.html

 

转载于:https://www.cnblogs.com/fangyukuan/archive/2010/08/31/1814262.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值