句柄与指针的关系

来源:互联网 发布:天刀网络异常断开连接 编辑:程序博客网 时间:2024/04/29 10:45
今日看了下MFC的原码,写一点心得。
以HWND和CWnd*的说明为例:
        CWnd类中有static函数CWnd* FromHandle(HWND)
        它的实现是通过pState = AfxGetModuleThreadState();
        而在pState 中存储有一些CHandleMap*(是一个字典指针)
        所以每次在字典中查询HWND来获得CWnd*指针。
当然,每次产生CWnd对象时,都会调用Attach()-----它是往字典中假如CWnd*与HWND对
        上边是MFC实现的句柄字典,其他句柄也是类似,只是系统对象句柄在系统中本身都有一个句柄表,它不是MFC实现的,而是系统产生的,通过这张表以便能访问相应的对象,例如:文件句柄、互斥句柄、进程和线程句柄等等。
原创粉丝点击