HINSTANCE,HWND、HMODULE 详解

一、HINSTANCE,HWND和ID值的用法及意义和区别

HINSTANCE;应用程序实例句柄,它是一个唯一用来标识程序进程的32位的变量,
HWND:是窗口句柄,有很多种句柄,还有HBRUSH,HFONT,HMENU等等
ID:是一些控件或是选项的标识符,在程序中用到对他们的操作时可以用这个ID来访问这个控件或是其他什么

二、 HINSTANCE和HMODULE这两种类型的句柄,用法不同么?

hmodule是代表应用程序载入的模块,win32系统下通常是被载入模块的线性地址,比如exe, dll等模块
等。hinstance在win32下与hmodule是相同的东西,在win32下还存在主要是因为win16程序使用hinstance来区别task

HINSTANCE是应用程序的实例句柄 
  获取方法 HINSTANCE AfxGetInstanceHandle( ); 
  或者AfxGetApp( );
  得到一个CWINAPP类的指针

三、

Handle
       是代表系统的内核对象,如文件句柄,线程句柄,进程句柄。
       在Windows环境中,句柄是用来标识项目的,这些项目包括:模块(module)、任务(task)、实例 (instance)、文件 (file)、内存块(block of memory)、菜单(menu)、控制(control)、字体(font)、资源(resource),包括图标(icon),光标 (cursor),字符串(string)等、GDI对象(GDI object),包括位图(bitmap),画刷 (brush),元文件(metafile),调色板(palette),画笔(pen),区域 (region),以及设备描述表 (device context)。 
        WONDOWS系统对内核对象以链表的形式进行管理,载入到内存中的每一个内核对象都有一个线性地址,同时相对系统来说,在串列中有一个索引位置,这个索引位置就是内核对象的handle。
       句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。
       句柄只有当唯一的确定了一个项目的时候,它才开始有意义。句柄对应着项目表中的一项,只是一个索引值,不是物理地址,应用程序还不能直接存取这块内存,而只有WINDOWS本身才能直接存取这个表,应用程序只能通过API函数来处理不同的句柄。

HMODULE
是代表应用程序载入的模块,win32系统下通常是被载入模块的线性地址。

HINSTANCE
 在win32下与HMODULE是相同的东西,在Win32下还存在主要是因为Win16 程序使用HINSTANCE来区别任务,等同于 HMODULE。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值