青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

twzheng's cppblog

『站在風口浪尖緊握住鼠標旋轉!』 http://www.cnblogs.com/twzheng

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  136 隨筆 :: 78 文章 :: 353 評論 :: 0 Trackbacks
句柄的本質
摘自 好易教程網

一、書上定義:

<<Microsoft Windows 3 Developer''s Workshop>>(Microsoft Press,by Richard Wilton)
    在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)。

<<WINDOWS編程短平快>>(南京大學出版社):
    句柄是WONDOWS用來標識被應用程序所建立或使用的對象的唯一整數,WINDOWS使用各種各樣的句柄標識諸如應用程序實例,窗口,控制,位圖,GDI對象等等。WINDOWS句柄有點象C語言中的文件句柄。

二、MFC源代碼:

#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

DECLARE_HANDLE(HMODULE);
DECLARE_HANDLE(HINSTANCE);
DECLARE_HANDLE(HLOCAL);
DECLARE_HANDLE(HGLOBAL);
DECLARE_HANDLE(HDC);
DECLARE_HANDLE(HRGN);
DECLARE_HANDLE(HWND);
DECLARE_HANDLE(HMENU);
DECLARE_HANDLE(HACCEL);
DECLARE_HANDLE(HTASK);


三、理解:
    HANDLE就是PVOID,也就是無類型指針,
    上面這些資源的句柄Handles都不過是指向struct的指針,至于這個struct的用處,連M$都說unused了,現在解釋下M$這么做的意義,這就是所謂數據封裝,你可以在你的程序中把M$的內部結構指針傳來傳去,可是你卻不知道它到底指向的內容是什么。

    句柄與指針確實是完全不同的兩個概念。句柄僅僅是一個32位整數,WIN32中用于標記某個系統或進程的對象,可以理解為對象索引(由于M$未完全公開相關技術,在一定程度上只能如此理解),這個索引更像是一種映射關系(從句柄到對象指針的映射),而不是純粹意義上的“數組下標”。


     句柄可以理解為用于指向或標識內存的一塊“資源”,這些資源如:文件(file)、內存塊(block of memory)、菜單(menu)等等。操作系統通過句柄來定位核心對象和系統資源。
    指針即為指向內存的“數據或指令”某一單元。

    說的確切一點,句柄實際上是一種指向某種資源的指針,但與指針又有所不同:指針對應著一個數據在內存中的地址,得到了指針就可以自由地修改該數據。Windows并不希望一般程序修改其內部數據結構,因為這樣太不安全。所以Windows給每個使用GlobalAlloc等函數聲明的內存區域指定一個句柄(本質上仍是一個指針,但不要直接操作它),平時你只是在調用API函數時利用這個句柄來說明要操作哪段內存。

    
四、引喻:
   牧童遙指杏花村
   牧童的手為指針,杏花村的牌子為句柄,杏花村酒店為對象的實例.


附注:獲得窗口句柄三種方法

1.HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName)

   HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)

2.HWND WindowFromPoint(POINT& Point)//獲得當前鼠標光標位置的窗口HWND

3.BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)

   BOOL CALLBACK EnumChildWindows(HWND hWndParent, WNDENUMPROC lpEnumFunc,LPARAM lParam)

   BOOL CALLBACK EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam)

   BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
posted on 2008-01-06 14:12 譚文政 閱讀(455) 評論(0)  編輯 收藏 引用 所屬分類: C/C++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蘑菇福利视频一区播放| 另类亚洲自拍| 国产午夜精品视频免费不卡69堂| 欧美激情亚洲视频| 欧美韩日一区二区三区| 欧美韩国日本一区| 欧美日韩视频不卡| 国产精品日韩欧美一区二区三区| 国产精品日本欧美一区二区三区| 国产精品区一区二区三区| 国产农村妇女毛片精品久久麻豆| 国产精品一区二区你懂得| 国产综合网站| 亚洲美女淫视频| 亚洲欧美在线高清| 美女精品视频一区| 亚洲国产另类久久久精品极度| 亚洲国产精品美女| 亚洲一区欧美一区| 免费在线观看日韩欧美| 欧美巨乳在线观看| 国产一区高清视频| 99riav国产精品| 久久久国产午夜精品| 亚洲激情影院| 久久国产一区二区| 欧美色另类天堂2015| 黄色成人小视频| 亚洲视频碰碰| 欧美激情按摩在线| 欧美一激情一区二区三区| 欧美成年人视频| 国产日韩欧美综合精品| 99av国产精品欲麻豆| 久久香蕉国产线看观看网| 亚洲精品中文字幕在线| 久久综合久久综合久久| 国产精品久久久久久久久久久久| 在线观看中文字幕亚洲| 香蕉乱码成人久久天堂爱免费| 久久久蜜臀国产一区二区| 久久久精品tv| 免费亚洲电影在线观看| 国产欧美在线看| 一区二区三区高清| 欧美高清一区| 久久九九精品| 国产深夜精品| 欧美在线视频日韩| 亚洲少妇中出一区| 欧美日韩高清区| 亚洲经典在线看| 蜜臀久久99精品久久久久久9| 香蕉精品999视频一区二区| 欧美视频在线免费| 日韩午夜在线| 亚洲激情成人| 欧美成人国产va精品日本一级| 国产真实乱偷精品视频免| 欧美一区免费视频| 亚洲天堂成人在线观看| 国产精品久久久久免费a∨| 一区二区高清| 亚洲精品国产精品国自产在线| 久热国产精品| 亚洲日韩成人| 亚洲国产精品久久精品怡红院| 久久综合色88| 亚洲免费激情| 亚洲精品一区二区三区蜜桃久| 欧美成人自拍视频| 日韩一区二区免费高清| 夜夜嗨av一区二区三区| 国产精品福利在线观看| 欧美亚洲三级| 久久国产精品亚洲77777| 国内自拍亚洲| 牛人盗摄一区二区三区视频| 久久免费视频这里只有精品| 激情六月婷婷久久| 亚洲欧洲在线视频| 欧美日韩精品中文字幕| 午夜精品电影| 久久嫩草精品久久久久| 亚洲精品乱码久久久久久久久| 亚洲精品乱码久久久久久| 欧美午夜激情视频| 欧美综合国产精品久久丁香| 麻豆视频一区二区| 一本色道久久88综合日韩精品| 亚洲最新中文字幕| 影音先锋亚洲一区| 亚洲精品美女在线| 国产视频在线观看一区| 亚洲电影av在线| 国产精品美女午夜av| 蜜桃av一区二区| 欧美日韩系列| 久久综合99re88久久爱| 欧美日韩卡一卡二| 久久久夜色精品亚洲| 欧美精品在线一区二区| 欧美成人一品| 亚洲黄色成人| 亚洲一区二区三区在线观看视频| 狠狠色丁香婷婷综合影院| 亚洲黑丝一区二区| 国产精品尤物福利片在线观看| 免费亚洲网站| 国产日韩欧美综合| 一本久道久久综合中文字幕| 激情偷拍久久| 国产精品99久久久久久久vr| 亚洲第一成人在线| 亚洲欧美日韩人成在线播放| 亚洲最新在线视频| 久久久国产一区二区三区| 亚洲一区免费观看| 欧美精品免费播放| 男女精品网站| 国产农村妇女精品| 一区二区三区回区在观看免费视频| 在线日韩欧美视频| 欧美中文字幕视频| 亚洲欧美视频一区二区三区| 欧美国产日韩免费| 欧美成人一区二区三区片免费 | 久久精品在线播放| 午夜精品一区二区三区在线视| 欧美电影电视剧在线观看| 麻豆精品一区二区av白丝在线| 国产欧美日韩一区| 亚洲欧美卡通另类91av| 一本色道久久综合狠狠躁篇的优点 | 亚洲一区999| 欧美日韩三级一区二区| 亚洲日本国产| 在线视频中文亚洲| 欧美日韩精品免费观看视频完整| 亚洲成人在线视频播放| 国产日产欧美a一级在线| 夜夜嗨av一区二区三区免费区| 99精品欧美一区| 欧美日韩国内| 夜夜嗨av一区二区三区网站四季av | 久久久噜噜噜久久狠狠50岁| 欧美亚男人的天堂| 日韩亚洲欧美成人一区| 亚洲一区在线直播| 国产精品美女午夜av| 欧美一区二区啪啪| 久久亚洲精品视频| 亚洲国产欧美在线 | 黄色精品网站| 老牛国产精品一区的观看方式| 欧美a级一区| 99在线|亚洲一区二区| 欧美日韩国产成人在线91| 中文在线资源观看视频网站免费不卡| 亚洲欧美综合网| 美国成人直播| 日韩视频在线一区二区| 欧美三级视频在线播放| 亚洲欧美日韩精品久久| 久久久欧美一区二区| 亚洲欧洲三级| 欧美午夜精品久久久| 亚洲欧美一级二级三级| 欧美a一区二区| 午夜精品福利在线观看| 一区二区三区在线高清| 欧美伦理一区二区| 亚洲欧美成人一区二区在线电影| 久久久91精品| 一区二区欧美激情| 国内精品久久久久久久97牛牛| 欧美成人精品h版在线观看| 99国产麻豆精品| 久久久久久久久久久久久久一区 | 亚洲国产精品福利| 欧美片在线观看| 欧美一区三区二区在线观看| 亚洲激情午夜| 美女999久久久精品视频| 亚洲一区二区三区视频播放| 在线成人免费视频| 国产欧美一区二区色老头| 欧美美女日韩| 久久综合九色综合欧美就去吻 | 欧美日韩日本国产亚洲在线| 香蕉视频成人在线观看| 99视频热这里只有精品免费| 免费成人高清在线视频| 欧美中文日韩| 亚洲资源在线观看| 一区二区日韩伦理片| 最新国产乱人伦偷精品免费网站| 国产亚洲欧美一区二区| 国产精品女同互慰在线看| 欧美日韩成人在线|