强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 廠商 > 知識(shí) > 句柄,句柄是什么意思詳細(xì)解釋下

句柄,句柄是什么意思詳細(xì)解釋下

來源:整理 時(shí)間:2024-12-14 14:28:19 編輯:智能門戶 手機(jī)版

本文目錄一覽

1,句柄是什么意思詳細(xì)解釋下

由于MS未完全公開相關(guān)技術(shù),在一定程度上只能如此理解:句柄與指針可能是完全不同的兩個(gè)概念。句柄僅僅是一個(gè)32位整數(shù),WIN32中用于標(biāo)記某個(gè)系統(tǒng)或進(jìn)程的對(duì)象,可以理解為對(duì)象索引
遙控器
句柄,是個(gè)指針,指向一個(gè)結(jié)構(gòu)體,這個(gè)結(jié)構(gòu)體有個(gè)唯一的成員,int型變量

句柄是什么意思詳細(xì)解釋下

2,請(qǐng)問句柄是什么

句柄概念在WINDOWS編程中是一個(gè)很重要的概念,在許多地方都扮演著重要的角色。但由此而產(chǎn)生的句柄概念也大同小異,比如:<>(Microsoft Press,by Richard Wilton)一書中句柄的概念是:在Windows環(huán)境中,句柄是用來標(biāo)識(shí)項(xiàng)目的,這些項(xiàng)目包括:   *.模塊(module)   *.任務(wù)(task)   *.實(shí)例(instance)   *.文件(file)   *.內(nèi)存塊(block of memory)   *.菜單(menu)   *.控制(control)   *.字體(font)   *.資源(resource),包括圖標(biāo)(icon),光標(biāo)(cursor),字符串(string)等

請(qǐng)問句柄是什么

3,什么叫句柄句柄有什么用處

句柄是一個(gè)標(biāo)識(shí)符,是拿來標(biāo)識(shí)對(duì)象或者項(xiàng)目的。如果想更透徹一點(diǎn)地認(rèn)識(shí)句柄,我可以告訴大家,句柄類似指向指針的指針,僅僅是類似,通過句柄可以找到對(duì)應(yīng)的數(shù)據(jù),但是不是二級(jí)指針。我們知道,所謂指針是一種內(nèi)存地址。應(yīng)用程序啟動(dòng)后,組成這個(gè)程序的各對(duì)象是駐留在內(nèi)存中的。簡(jiǎn)單地理解,似乎我們只要獲知這個(gè)內(nèi)存的首地址,就可以隨時(shí)用這個(gè)地址訪問對(duì)象了。如果您真的這樣認(rèn)為,那您可就大錯(cuò)特錯(cuò)了。我們知道,Windows是一個(gè)以虛擬內(nèi)存為基礎(chǔ)的操作系統(tǒng)。在這種系統(tǒng)環(huán)境下,Windows內(nèi)存管理器經(jīng)常在內(nèi)存中來回移動(dòng)對(duì)象,以此來滿足各種應(yīng)用程序的內(nèi)存需要。對(duì)象被移動(dòng)意味著它的地址變化了。如果地址總是如此變化,我們?cè)摰侥睦锶フ夷且粋€(gè)對(duì)象呢?為了解決這個(gè)問題,Windows操作系統(tǒng)為全體應(yīng)用程序騰出一些內(nèi)存單元,用來專門登記各應(yīng)用程序的對(duì)象在內(nèi)存中的地址的變化,而前者的物理地址在系統(tǒng)運(yùn)行期間是始終保持不變的。Windows內(nèi)存管理器移動(dòng)了對(duì)象在內(nèi)存中的位置后,會(huì)把該對(duì)象新的地址及時(shí)地告知給對(duì)應(yīng)的句柄進(jìn)行更新。這樣我們只要知道這個(gè)句柄,就可以間接地知道對(duì)象具體在內(nèi)存中的哪個(gè)位置了。這個(gè)地址是在對(duì)象裝載(Load)時(shí)由系統(tǒng)分配給的,當(dāng)對(duì)象卸載時(shí)(Unload)又釋放給系統(tǒng)。
第一種解釋:句柄是一種特殊的智能指針 。當(dāng)一個(gè)應(yīng)用程序要引用其他系統(tǒng)(如數(shù)據(jù)庫、操作系統(tǒng))所管理的內(nèi)存塊或?qū)ο髸r(shí),就要使用句柄。第二種解釋:整個(gè)Windows編程的基礎(chǔ)。一個(gè)句柄是指使用的一個(gè)唯一的整數(shù)值,即一個(gè)4字節(jié)(64位程序中為8字節(jié))長(zhǎng)的數(shù)值,來標(biāo)識(shí)應(yīng)用程序中的不同對(duì)象和同類中的不同的實(shí)例,諸如,一個(gè)窗口,按鈕,圖標(biāo),滾動(dòng)條,輸出設(shè)備,控件或者文件等

什么叫句柄句柄有什么用處

4,句柄是什么

句柄就是用來區(qū)分各種內(nèi)存對(duì)象的唯一標(biāo)識(shí)符號(hào),是個(gè)32位整數(shù)。有些是整個(gè)系統(tǒng)唯一(如窗口句柄),有些是當(dāng)前進(jìn)程或線程中唯一(如線程句柄,全局的有另一個(gè)標(biāo)識(shí)符)。詳細(xì)的可分為許多種,都是以H開頭的。在VB中使用時(shí)全部都用Long。常見的有窗口句柄(HWND),設(shè)備描述表句柄(HDC),內(nèi)存句柄(HMEM),文件句柄,進(jìn)程句柄,線程句柄,筆的類型句柄(HPEN),字體句柄(HFONT),區(qū)域句柄(HRGN)等等。在申請(qǐng)句柄時(shí)是要占用資源的,分三類SYSTEM、USER、GDI。而WINDOWS的資源是固定的,并不隨內(nèi)存的擴(kuò)大而擴(kuò)大,所以使用完以后一定要釋放。>如果只用VB本身的代碼一般是不會(huì)用到句柄的,但要是使用API函數(shù)的話,大多數(shù)會(huì)使用。再Windows系統(tǒng)中,句柄(我一直覺得這個(gè)詞翻譯得特別別扭)分為三大類:KernelHandle、UserHandle和應(yīng)用程序自定義的Handle。KernelHandle實(shí)際上是進(jìn)程內(nèi)Kernel對(duì)象的指針表索引,Kernel對(duì)象包括進(jìn)程、文件、信號(hào)等。但是MS為了掩蓋著一事實(shí),在系統(tǒng)啟動(dòng)時(shí)生成了一個(gè)所謂Obsfucator的值(其實(shí)應(yīng)該是Obfuscator,MicrosoftBugs(R):),生成Handle后將Handle與這個(gè)值異或后返回給應(yīng)用程序,所以看到的Handle都是一些很大而且毫無意義的數(shù)字。這些Handle和索引的對(duì)象是由KRNL32.DLL和VMM32.VXD共同管理的,所以稱之為KernelHandle。UserHandle是用來標(biāo)示窗口、DC等對(duì)象的,他們是真實(shí)的指針,但指向的并不是對(duì)象的開頭,有一個(gè)偏移量。同樣,這些對(duì)象是由USER32.DLL管理的。第三種Handle不過是應(yīng)用程序自定義的一些索引之類的東東,具體的意義和應(yīng)用程序相關(guān)

5,句柄是什么意思

這是操作系統(tǒng)里的一個(gè)概念,句柄是WONDOWS用來標(biāo)識(shí)被應(yīng)用程序所建立或使用的對(duì)象的唯一整數(shù),WINDOWS使用各種各樣的句柄標(biāo)識(shí)諸如應(yīng)用程序?qū)嵗?,窗口,控制,位圖,GDI對(duì)象等等。WINDOWS句柄有點(diǎn)象C語言中的文件句柄。 從上面的定義中的我們可以看到,句柄是一個(gè)標(biāo)識(shí)符,是拿來標(biāo)識(shí)對(duì)象或者項(xiàng)目的,它就象我們的姓名一樣,每個(gè)人都會(huì)有一個(gè),不同的人的姓名不一樣,但是,也可能有一個(gè)名字和你一樣的人。從數(shù)據(jù)類型上來看它只是一個(gè)16位的無符號(hào)整數(shù)。應(yīng)用程序幾乎總是通過調(diào)用一個(gè)WINDOWS函數(shù)來獲得一個(gè)句柄,之后其他的WINDOWS函數(shù)就可以使用該句柄,以引用相應(yīng)的對(duì)象。 如果想更透徹一點(diǎn)地認(rèn)識(shí)句柄,我可以告訴大家,句柄是一種指向指針的指針。我們知道,所謂指針是一種內(nèi)存地址。應(yīng)用程序啟動(dòng)后,組成這個(gè)程序的各對(duì)象是住留在內(nèi)存的。如果簡(jiǎn)單地理解,似乎我們只要獲知這個(gè)內(nèi)存的首地址,那么就可以隨時(shí)用這個(gè)地址訪問對(duì)象。但是,如果您真的這樣認(rèn)為,那么您就大錯(cuò)特錯(cuò)了。我們知道,Windows是一個(gè)以虛擬內(nèi)存為基礎(chǔ)的操作系統(tǒng)。在這種系統(tǒng)環(huán)境下,Windows內(nèi)存管理器經(jīng)常在內(nèi)存中來回移動(dòng)對(duì)象,依此來滿足各種應(yīng)用程序的內(nèi)存需要。對(duì)象被移動(dòng)意味著它的地址變化了。如果地址總是如此變化,我們?cè)摰侥睦锶フ以搶?duì)象呢? 為了解決這個(gè)問題,Windows操作系統(tǒng)為各應(yīng)用程序騰出一些內(nèi)存儲(chǔ)地址,用來專門登記各應(yīng)用對(duì)象在內(nèi)存中的地址變化,而這個(gè)地址(存儲(chǔ)單元的位置)本身是不變的。Windows內(nèi)存管理器在移動(dòng)對(duì)象在內(nèi)存中的位置后,把對(duì)象新的地址告知這個(gè)句柄地址來保存。這樣我們只需記住這個(gè)句柄地址就可以間接地知道對(duì)象具體在內(nèi)存中的哪個(gè)位置。這個(gè)地址是在對(duì)象裝載(Load)時(shí)由系統(tǒng)分配給的,當(dāng)系統(tǒng)卸載時(shí)(Unload)又釋放給系統(tǒng)。 句柄地址(穩(wěn)定)→記載著對(duì)象在內(nèi)存中的地址————→對(duì)象在內(nèi)存中的地址(不穩(wěn)定)→實(shí)際對(duì)象 本質(zhì):WINDOWS程序中并不是用物理地址來標(biāo)識(shí)一個(gè)內(nèi)存塊,文件,任務(wù)或動(dòng)態(tài)裝入模塊的,相反的,WINDOWS API給這些項(xiàng)目分配確定的句柄,并將句柄返回給應(yīng)用程序,然后通過句柄來進(jìn)行操作。 但是必須注意的是程序每次從新啟動(dòng),系統(tǒng)不能保證分配給這個(gè)程序的句柄還是原來的那個(gè)句柄,而且絕大多數(shù)情況的確不一樣的。假如我們把進(jìn)入電影院看電影看成是一個(gè)應(yīng)用程序的啟動(dòng)運(yùn)行,那么系統(tǒng)給應(yīng)用程序分配的句柄總是不一樣,這和每次電影院售給我們的門票總是不同的一個(gè)座位是一樣的道理。

6,什么是句柄

句柄 譯自英文(詞義費(fèi)解)。 實(shí)際上是某“對(duì)象”“東西”(object) 的 ID. 程序里每個(gè)句柄 是一個(gè) 獨(dú)一無二的 無符號(hào)整數(shù)。例如,程序打開一個(gè)視窗,這個(gè)窗就有一個(gè)句柄,要與這個(gè)窗打交道,例如,在這個(gè)窗里面畫東西,在這個(gè)窗里面抓取鼠標(biāo)坐標(biāo),就要用這個(gè)句柄。如同人名,標(biāo)識(shí)。游戲句柄,就是游戲的 ID,是此游戲,非別的游戲。
句柄只是一個(gè)代號(hào),如磁盤光驅(qū)可用數(shù)字來表示,這個(gè)數(shù)字就是句柄,但句柄不是指針
typedef struct tagwnd { lpctstr lpszclassname; wndproc lpwndproc; uint ustyle; uint uexstyle; lpctstr lpsztitle; rect rcwindow; rect rcclient; .... } wnd, *lpwnd; typedef hwnd lpwnd; // 給用戶的頭文件中則可以定義hwnd為handle,或dword。 在上面的例子中,窗口結(jié)構(gòu)向用戶隱藏,你只能通過hwnd句柄使用系統(tǒng)調(diào)用來完成窗口操作。而在系統(tǒng)內(nèi)部,則直接使用這個(gè)結(jié)構(gòu)(為了提高效率)。如以下偽碼: bool getwindowrect(hwnd hwnd, lprect lprect) { lpwnd lpwnd32 = (lpwnd)hwnd; // 首先應(yīng)該判斷地址是否合法,這里略 *lprect = lpwnd->rcwindow; return true; } 在很多場(chǎng)合下句柄應(yīng)該是個(gè)指針。當(dāng)然,在一些情況下也可能是數(shù)組的索引。這取決與系統(tǒng)的定義。引入句柄可以屏蔽掉系統(tǒng)的內(nèi)部實(shí)現(xiàn),對(duì)于系統(tǒng)的穩(wěn)定、健壯意義巨大,使系統(tǒng)易于升級(jí)。這一點(diǎn)通過win16到win32的平滑過渡即可看出。不過,句柄的引入也給理解帶來了一定的困難。 我最后再做一些分析,如下: 單從概念上講,句柄指一個(gè)對(duì)象的標(biāo)識(shí),而指針是一個(gè)對(duì)象的首地址。從實(shí)際處理的角度講,即可以把句柄定義為指針,又可以把它定義為同類對(duì)象數(shù)組的索引,這兩種處理方法都有優(yōu)缺點(diǎn),至于選用哪種方式,完全應(yīng)該看實(shí)際需要,這可以說是一種程序設(shè)計(jì)上的技巧。那種單純認(rèn)為句柄是指針或索引的想法都是機(jī)械的、不確切的。 其實(shí),在windows中類似的處理是很多的、很靈活的。再具個(gè)相似的例子: 我們知道,在windows中有個(gè)函數(shù)叫做callwindowproc。故名思義,它的作用就是向指定的窗口過程傳遞一個(gè)消息。你也許會(huì)想,既然我已經(jīng)有了窗口過程的指針,為什么我不可以直接通過這個(gè)指針調(diào)用該函數(shù)(這是c語言的內(nèi)建功能)?事實(shí)上,在win16中確實(shí)可以這么做,因?yàn)間etwindowlong返回的確實(shí)是該函數(shù)的指針。但在win32下,getwindowlong返回的并不是該函數(shù)的指針,而是一個(gè)包含函數(shù)指針的數(shù)據(jù)結(jié)構(gòu)的指針(msdn上說返回的是一個(gè)窗口函數(shù)地址或它的句柄,就是指的這種情況)。該數(shù)據(jù)結(jié)構(gòu)是可變的,但只要你使用callwindowproc來調(diào)用的話是不會(huì)出錯(cuò)的。這里我們又看到使用句柄處理帶來的好處。(補(bǔ)充說明一點(diǎn):微軟在這里之所以這么處理,是為了解決16位/32位以及ansi/unicode的轉(zhuǎn)化問題) 神呀,救救那些頭腦呆板、一知半解的人吧!
文章TAG:句柄句柄是什么意思詳細(xì)解釋下

最近更新

  • 呼吸機(jī)面罩,飛利浦呼吸機(jī)怎么換面罩呼吸機(jī)面罩,飛利浦呼吸機(jī)怎么換面罩

    飛利浦呼吸機(jī)怎么換面罩您好,呼吸機(jī)和面罩是需要呼吸管路連接的,您把面罩和管路的接口拔開就可以換面罩了哦2,什么是面罩吸氧只是吸氧的一種,吸氧需要根據(jù)病情、年齡、體位等的不同而有不.....

    知識(shí) 日期:2024-12-14

  • 移動(dòng)數(shù)據(jù)終端怎么恢復(fù),2077快速移動(dòng)數(shù)據(jù)終端移動(dòng)數(shù)據(jù)終端怎么恢復(fù),2077快速移動(dòng)數(shù)據(jù)終端

    該技術(shù)主要被專用移動(dòng)數(shù)據(jù)通信系統(tǒng)采用,只能為移動(dòng)數(shù)據(jù)用戶提供到分組交換數(shù)據(jù)網(wǎng)絡(luò)用戶的連接。手機(jī)數(shù)據(jù):1,即從數(shù)據(jù)傳輸?shù)浇粨Q,采用分組技術(shù),用戶端配備無線分組調(diào)制解調(diào)器,可以在分組網(wǎng)上.....

    知識(shí) 日期:2024-12-14

  • 澀老頭,被拋棄后嫁66歲老頭老頭豁達(dá)有魅力澀老頭,被拋棄后嫁66歲老頭老頭豁達(dá)有魅力

    前面有個(gè)老頭,開頭有個(gè)四字習(xí)語?有個(gè)老頭盯著我看,旁邊還有個(gè)老太太。被拋棄后,她嫁給了一個(gè)66歲的老人,老人有兩種,一種是老了就老了,一輩子迷茫,一種是老了就精了,以兒女為榮,老人靠在一根拐杖.....

    知識(shí) 日期:2024-12-14

  • 手機(jī)虛電,手機(jī)電池老是虛電怎么辦手機(jī)虛電,手機(jī)電池老是虛電怎么辦

    手機(jī)電池老是虛電怎么辦2,安卓出現(xiàn)虛電怎么辦3,手機(jī)為什么會(huì)有虛電4,新買的手機(jī)為啥是有很多電量的5,魅族手機(jī)沖虛電怎么辦6,新手機(jī)電池里的電是虛電嗎1,手機(jī)電池老是虛電怎么辦手機(jī)是否常斷.....

    知識(shí) 日期:2024-12-14

  • 煙臺(tái)農(nóng)業(yè)大學(xué)電氣自動(dòng)化,電氣工程及其自動(dòng)化專業(yè):去哪里?煙臺(tái)農(nóng)業(yè)大學(xué)電氣自動(dòng)化,電氣工程及其自動(dòng)化專業(yè):去哪里?

    2011年去暨南大學(xué)還是煙臺(tái)大學(xué)讀土木工程還是電氣自動(dòng)化好?山東農(nóng)業(yè)工程學(xué)院電氣工程及其自動(dòng)化在山東的二本普通高校在哪個(gè)校區(qū)?山東大學(xué)山東科技大學(xué)中國(guó)尤氏大學(xué)青島科技大學(xué)濟(jì)南大學(xué).....

    知識(shí) 日期:2024-12-14

  • dns服務(wù)異常,dns異常是怎么回事dns服務(wù)異常,dns異常是怎么回事

    dns異常是怎么回事2,DNS服務(wù)異常怎么辦3,電腦為什么老是顯示DNS服務(wù)器異常4,DNS服務(wù)異常是什么意思5,DNS服務(wù)器異常6,路由器顯示DNS服務(wù)異常1,dns異常是怎么回事dns解析失敗,服務(wù)器臨時(shí)故障,各.....

    知識(shí) 日期:2024-12-14

  • 為什么會(huì)有靜電,人為什么會(huì)起靜電啊為什么會(huì)有靜電,人為什么會(huì)起靜電啊

    人為什么會(huì)起靜電啊2,為什么人體要產(chǎn)生靜電反應(yīng)3,人身上為什么會(huì)有靜電是怎么引發(fā)的4,人的身體為什么會(huì)有靜電5,為什么身體總是發(fā)靜電6,為什么會(huì)靜電1,人為什么會(huì)起靜電啊人的身體與衣服摩擦.....

    知識(shí) 日期:2024-12-14

  • ai是什么意思,ai到底是什么aai是什么意思,ai到底是什么a

    ai到底是什么a2,AI是啥意思3,ai是什么意思4,AI是什么誰告訴我5,AI是什么啊6,什么是AI1,ai到底是什么aai有多個(gè)意思一般指人工智能(ArtificialIntelligence)在nba中指球星阿倫-艾弗森(AllenIvers.....

    知識(shí) 日期:2024-12-14

相關(guān)文章