加载中…
个人资料
bigni32
bigni32
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,791
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Window 编程之句柄篇.

(2011-07-18 23:16:29)
标签:

杂谈

这篇文章是我在学习的时候为了尔后淡忘因而把当时的会意登记下来。定然有不准确的地方,因而仅供参看。我们初学VC++是经常遭到一些我们在规范C++中未曾的数据种类,如句柄,消息。句柄:我们先看看Winnt.h有关句柄的定义。#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
typedef HANDLE *PHANDLE;我们看到HANDLE即便PVOID,也即便无种类指针,
而DECLARE_HANDLE(HWND);即便:
struct HWND__ {
int unused;};
typedef struct HWND__ *HWND; 其实一个构造体指针,然而这个指针不像C指针一样,它的功能被微软举行了数据封装了(也即便MS$把一些风险的个性给局限了)。因而它在WinOS里只能作某个资源的标识符。来标识一个对象资源。这些资源包括:模块(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)。这些资源说究竟即便一些混杂的数据构造,微软把不同的数据构造定义成不同的句柄来标识,因为 window是个多任务虚构内存的系统,内存中的数据要不时的举行改变,随之而来的是地址就会发生改变,这么window就用一个表来保留改变的地址以确保过程拜会内存中的数据时不会揭示讹谬,这么这个用来保留改变的地址的列表就成了一个指向指针的指针了,然而这个表中保留内存改变前的地址的指针的变量是指针,然而MS为了确保平安因而它不像C指针的个性一样,MS作了手脚因而它错过了一个指针的个性,MS称为一个资源的标识。(因而系统这些资源和垄断系统有着紧凑的联系,万一我们能穿越句柄像平时指针那样来改来该去那系统就会被摧毁。)而指针则是一块内存的首地址。我们能够对指针举行lp++、lp—等垄断,获得了指针就能够自由地修正该数据。而句柄不能够这么垄断。句柄用API函数来调用。利用GetSafeHdc、 FromHandle、GetSafeHwnd、GetSafeHandle、m_hWnd、GetSafeHdc等函数能够告终指针与句柄人互换。如:1. HWND hWnd; CWnd* pWnd = CWnd::FromHandle(hWnd); 2. CWnd* pWnd; HWND hwnd = pWnd->GetSafeHwnd();拜会一个句柄标识的内存定然先GlobalLock能力获得一个指向内存的指针。在Window编程经常用到的句柄有如下:HINSTANCE 一个过程的实例句柄,bh2h.com实例句柄其实即便过程在内存中的地址,Windows在加载每个过程的时候都会分配不同的地址,这些地址即便一个个实例句柄.(也即便一个对象在内存中的地址或叫资源标识符)HWND 一个窗口句柄。尔后的广播和电视,进一步把新闻从传统的“双向沟通”形式转向一边倒的“单向散布”形式。这也导致新闻工作的凑近化,

几个问题的思忖.

C#中List与IList的差异.

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有