weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          理解句柄

          句柄是一種指向指針的指針。我們知 道,所謂指針是一種內存地址。應用程序啟動后,組成這 
          個程序的各對象是住留在內存的。如果簡單地理解,似乎我們只要獲知這個內存的首地址,那么就可以隨時用這個地址 訪問對象。但是,如果您真的這樣認為,那么您就大錯特錯了。我們知道,Windows是一 個以虛擬內存為基礎的操作系統。在這種系統環境下,Windows內存管理器經常在內存中來回移動對象,依此來滿足各種應用程序的內存需要。對象被移動意味著它的地址變化 了。如果地址總是如此變化,我們該到哪里去找該對象呢?為了解決這個問題,Windows操作系統為各應用程序騰出一些內存儲地址,用來專門 登記各應用對象在內存中的地址變化,而這個地址(存儲單元的位置)本身是不變的。Windows內存管理器在移動對象在內存中的位置后,把對象新的地址告知這個句柄地址來保存。這樣我們只需記住這個句柄地址就可以間接地知道對象具體在內存中的哪個位置。這個地址是在對象裝載(Load)時由系統分配給的,當系統卸載時(Unload)又釋放給系統。句柄地址(穩定)→記載著對象在內存中的地址→對象在內存中的地址(不穩定)→實際對象。但是,必須注意的是程序每次從新啟動,系統不能保證分配給這個程序的句柄還是原來的那個句柄,而且絕大多數情況的確不一樣的。假如我們把進入電影院看電影看成 是一個應用程序的啟動運行,那么系統給應用程序分配的句柄總是不一樣,這和每次電 影院售給我們的門票總是不同的一個座位是一樣的道理。

          from: http://blog.vckbase.com/arong/archive/2005/03/19/3732.html

          posted on 2005-08-26 11:35 weidagang2046 閱讀(181) 評論(0)  編輯  收藏 所屬分類: Windows

          主站蜘蛛池模板: 育儿| 南涧| 都匀市| 岑巩县| 清苑县| 冕宁县| 屯留县| 资中县| 耒阳市| 偏关县| 黑河市| 大邑县| 来安县| 烟台市| 宜宾市| 增城市| 沛县| 定南县| 年辖:市辖区| 教育| 娱乐| 紫阳县| 广安市| 清丰县| 涿州市| 中方县| 沂水县| 油尖旺区| 郧西县| 吉林市| 桑日县| 安陆市| 阿勒泰市| 东台市| 鹤壁市| 伽师县| 南昌市| 永德县| 柯坪县| 凉山| 永胜县|