句柄(Handle)是一個(gè)是用來(lái)標(biāo)識(shí)對(duì)象或者項(xiàng)目的標(biāo)識(shí)符,可以用來(lái)描述窗體、文件等,值得注意的是句柄不能是常量。句柄是WONDOWS用來(lái)標(biāo)識(shí)被應(yīng)用程序所建立或使用的對(duì)象的唯一整數(shù),WINDOWS使用各種各樣的句柄標(biāo)識(shí)諸如應(yīng)用程序?qū)嵗翱冢刂疲粓D,GDI對(duì)象等等。WINDOWS句柄有點(diǎn)象C語(yǔ)言中的文件句柄。從定義中的我們可以看到,句柄是一個(gè)標(biāo)識(shí)符,是拿來(lái)標(biāo)識(shí)對(duì)象或者項(xiàng)目的,它就象我們的姓名一樣,每個(gè)人都會(huì)有一個(gè),不同的人的姓名不一樣,但是,也可能有一個(gè)名字和你一樣的人。
中文名句柄
外文名Handle
定 義標(biāo)識(shí)對(duì)象或者項(xiàng)目的標(biāo)識(shí)符
領(lǐng) 域數(shù)理科學(xué)
由 來(lái)源于內(nèi)存管理機(jī)制—虛擬地址
本 質(zhì)一種標(biāo)識(shí)符
簡(jiǎn)介句柄(handle)是C++程序設(shè)計(jì)中經(jīng)常提及的一個(gè)術(shù)語(yǔ)。它并不是一種具體的、固定不變的數(shù)據(jù)類(lèi)型或?qū)嶓w,而是代表了程序設(shè)計(jì)中的一個(gè)廣義的概念。句柄一般是指獲取另一個(gè)對(duì)象的方法——一個(gè)廣義的指針,它的具體形式可能是一個(gè)整數(shù)、一個(gè)對(duì)象或就是一個(gè)真實(shí)的指針,而它的目的就是建立起與被訪問(wèn)對(duì)象之間的唯一的聯(lián)系。
在C++中,要訪問(wèn)一個(gè)對(duì)象,通常可以建立一個(gè)指向?qū)ο蟮闹羔槨5窃诤芏嗑唧w的應(yīng)用中,直接用指針代表對(duì)象并不是一個(gè)好的解決方案。云存儲(chǔ)是目前的一種新的存儲(chǔ)模式,它不是一個(gè)傳統(tǒng)的硬件存儲(chǔ)設(shè)備(如磁盤(pán)、光盤(pán)等),而是一種由專(zhuān)門(mén)的云存儲(chǔ)服務(wù)供應(yīng)商提供的服務(wù),任何用戶只需支付一定的費(fèi)用,都可以使用這種存儲(chǔ)服務(wù)。用戶和程序可以像訪問(wèn)本地文件系統(tǒng)一樣,透明的訪問(wèn)存儲(chǔ)在遠(yuǎn)端系統(tǒng)上的文件。[1]
編輯句柄是Windows系統(tǒng)中對(duì)象或?qū)嵗臉?biāo)識(shí),這些對(duì)象包括模塊、應(yīng)用程序?qū)嵗⒋翱凇⒖刂啤⑽粓D、GDI對(duì)象、資源、文件等
數(shù)據(jù)類(lèi)型從數(shù)據(jù)類(lèi)型上來(lái)看,它只是一個(gè)16位的無(wú)符號(hào)整數(shù)。應(yīng)用程序總是通過(guò)調(diào)用WindowsAPI獲得一個(gè)句柄,之后其他Windows函數(shù)就可以使用該句柄,以引用和操作相應(yīng)的內(nèi)核對(duì)象。句柄可以像指針那樣置空,那樣句柄就沒(méi)有任何意義,不代表任何內(nèi)核對(duì)象。
使用句柄在Windows編程中是一個(gè)很重要的概念,在Windows程序中并不是用物理地址來(lái)標(biāo)識(shí)一個(gè)內(nèi)存塊、文件、任務(wù)或動(dòng)態(tài)裝入模塊的。相反地,Windows?API給這些項(xiàng)目分配確定的句柄,并將句柄返回給應(yīng)用程序,然后通過(guò)句柄來(lái)進(jìn)行操作。
應(yīng)該明白的是,句柄是一個(gè)標(biāo)識(shí)符,是用來(lái)標(biāo)識(shí)對(duì)象或者項(xiàng)目的。從數(shù)據(jù)類(lèi)型上來(lái)看它只是一個(gè)16位的無(wú)符號(hào)整數(shù)。應(yīng)用程序幾乎總是通過(guò)調(diào)用一個(gè)Windows函數(shù)來(lái)獲得一個(gè)句柄,之后其他的Windows函數(shù)就可以使用該句柄,以引用相應(yīng)的對(duì)象。在Windows編程中會(huì)用到大量的句柄。
好處句柄可以給我們帶來(lái)如下的好處:
1、我們可以在實(shí)現(xiàn)中用尺寸大小固定的(constant-sized)對(duì)象來(lái)表示尺寸大小不定的(variable-sized)值。
2、我們可以在實(shí)現(xiàn)中用運(yùn)行時(shí)綁定(run-time?bounding)而不是編譯時(shí)(compile-timebounding)綁定的方式來(lái)處理對(duì)象。
3、對(duì)于實(shí)現(xiàn)的改變通常只會(huì)引起一次重新鏈接,而不是重新編譯。
4、我們可以對(duì)他人隱藏對(duì)象的實(shí)現(xiàn)。
發(fā)展在早期的Windows應(yīng)用程序中,句柄的使用是很頻繁的。但隨著MFC類(lèi)庫(kù)發(fā)展,其對(duì)Windows內(nèi)核的封裝程度不斷提高。這樣如果用MFC類(lèi)庫(kù)編程的話,就很少會(huì)有機(jī)會(huì)直接對(duì)句柄進(jìn)行操作。但是如果使用?Windows?API函數(shù)的話,依然需要對(duì)句柄進(jìn)行直接操作。
參考資料本文發(fā)布于:2023-06-01 20:56:09,感謝您對(duì)本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/92/187528.html
版權(quán)聲明:本站內(nèi)容均來(lái)自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:句柄(標(biāo)識(shí)符).doc
本文 PDF 下載地址:句柄(標(biāo)識(shí)符).pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |