討論區快速選單
知識庫快速選單
網路投保旅行平安險 傑米的攝影旅遊筆記 政府補助!學嵌入式+物聯網
[ 回上頁 ] [ 討論區發言規則 ]
Handle二三問
更改我的閱讀文章字型大小
作者 : john cheng(Neoart) 貼文超過200則
[ 貼文 200 | 人氣 4365 | 評價 210 | 評價/貼文 1.05 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/1/20 下午 01:26:27
各位先進大家好
我是位C++的初學者
在學習的過程中,一直很好奇一樣東西.:
到底Handle是什麼 ? 每個"類別"的handle (ex : HWD, or file handle...)都是長的一樣嗎 ?
有什麼工具可以看出handle在記憶體中的長相嗎?
恕在下初學C++,提出這麼單純的問題.因為找了MSDN也沒有什麼太大的說明.
感恩
作者 : shing819(Clier) VC++曠世奇才貼文超過1000則人氣指數超過30000點
[ 貼文 1740 | 人氣 40353 | 評價 8630 | 評價/貼文 4.96 | 送出評價 84 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人john cheng註記此篇回應為很有道理 2006/1/20 下午 08:43:09

引用侯捷的解釋:
{
  handle 就是一個…唔…號碼牌。你擁有某個號碼牌,你就擁
  有該號碼牌所代表之物的擁有權。
};

========================================

像通行證一樣,取得該物件的通行證就可以對物件做控制,如取
得視窗Handle就可以透過函數控制視窗的大小,移動,縮放,隱藏
,取得標題文字,視窗範圍,是否有捲動軸,.......

定義:
#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;

除錯工具列有個Memory按鈕,可以查看記憶體內容.





作者 : sflam(Raymond)討論區板主 Visual C++ .NET卓越專家VC++一代宗師新手入門優秀好手資訊類作業求救頂尖高手C++一代宗師貼文超過4000則
[ 貼文 4945 | 人氣 9172 | 評價 32290 | 評價/貼文 6.53 | 送出評價 142 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人john cheng註記此篇回應為很有道理 2006/1/20 下午 10:00:25
>到底Handle是什麼 ?

從表面上看, handle 只是一個 unsigned 的數字而已. 它實際上的意義只有內部使用的函式知道.


>每個'類別'的handle (ex : HWD, or file handle...)都是長的一樣嗎 ?

不一定.

它可以是一個物件的指標, 或是一個索引. 產生並使用這個 handle 的系統函式會透過這個 handle 得到它所代表的物件.


>有什麼工具可以看出handle在記憶體中的長相嗎?

打個比方, 你在程式裡用 new 來配置一個物件. new 傳回來的是一個指標, 該指標所指向的物件只有你的程式知道如何用. 對你程式外的使用者來說, 該指標長得什麼樣, 所指向的物件的結構是不需要也很難去了解的.

從另一方面來看, 你從 new (或 new[]) 得到的只是一個指標, 你唯一知道的, 就是該指標指向一或多個已配置的物件, 你所能夠做的, 就是確保在使用該記憶體時不會超出所配置的範圍. 但該指標對記憶體配置的函式庫來說, 它有更深一層的意義, 它確保 delete (或 delete[]) 能正確的釋放記憶體.

 板主 : 青衫 , Raymond
 > Visual C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Visual C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Visual C++
1 青衫 11070 
2 Raymond 10090 
3 Clier 7630 
4 小約翰 2500 
5 Cog 2030 
6 coco 1870 
7 aming 1410 
8 牧童哥 1400 
9 r2109 1380 
10 Akira 1350 
Visual C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.140625