欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
句柄
首先什么是句柄?(理解了句柄,也就知道了句柄和指針的區別了)

所謂句柄實(shí)際上是一個(gè)數據,是一個(gè)Long (整長(cháng)型)的數據。
句柄是WONDOWS用來(lái)標識被應用程序所建立或使用的對象的唯一整數,WINDOWS使用各種各樣的句柄標識諸如應用程序實(shí)例,窗口,控制,位圖,GDI對象等等。WINDOWS句柄有點(diǎn)象C語(yǔ)言中的文件句柄。 
從上面的定義中的我們可以看到,句柄是一個(gè)標識符,是拿來(lái)標識對象或者項目的,它就象我們的姓名一樣,每個(gè)人都會(huì )有一個(gè),不同的人的姓名不一樣,但是,也可能有一個(gè)名字和你一樣的人。從數據類(lèi)型上來(lái)看它只是一個(gè)16位的無(wú)符號整數。應用程序幾乎總是通過(guò)調用一個(gè)WINDOWS函數來(lái)獲得一個(gè)句柄,之后其他的WINDOWS函數就可以使用該句柄,以引用相應的對象。
如果想更透徹一點(diǎn)地認識句柄,我可以告訴大家,句柄是一種指向指針的指針。我們知道,所謂指針是一種內存地址。應用程序啟動(dòng)后,組成這個(gè)程序的各對象是住留在內存的。如果簡(jiǎn)單地理解,似乎我們只要獲知這個(gè)內存的首地址,那么就可以隨時(shí)用這個(gè)地址訪(fǎng)問(wèn)對象。但是,如果您真的這樣認為,那么您就大錯特錯了。我們知道,Windows是一個(gè)以虛擬內存為基礎的操作系統。在這種系統環(huán)境下,Windows內存管理器經(jīng)常在內存中來(lái)回移動(dòng)對象,依此來(lái)滿(mǎn)足各種應用程序的內存需要。對象被移動(dòng)意味著(zhù)它的地址變化了。如果地址總是如此變化,我們該到哪里去找該對象呢?
為了解決這個(gè)問(wèn)題,Windows操作系統為各應用程序騰出一些內存儲地址,用來(lái)專(zhuān)門(mén)登記各應用對象在內存中的地址變化,而這個(gè)地址(存儲單元的位置)本身是不變的。Windows內存管理器在移動(dòng)對象在內存中的位置后,把對象新的地址告知這個(gè)句柄地址來(lái)保存。這樣我們只需記住這個(gè)句柄地址就可以間接地知道對象具體在內存中的哪個(gè)位置。這個(gè)地址是在對象裝載(Load)時(shí)由系統分配給的,當系統卸載時(shí)(Unload)又釋放給系統。

句柄地址(穩定)→記載著(zhù)對象在內存中的地址────→對象在內存中的地址(不穩定)→實(shí)際對象

本質(zhì):WINDOWS程序中并不是用物理地址來(lái)標識一個(gè)內存塊,文件,任務(wù)或動(dòng)態(tài)裝入模塊的,相反的,WINDOWS API給這些項目分配確定的句柄,并將句柄返回給應用程序,然后通過(guò)句柄來(lái)進(jìn)行操作。 
但是必須注意的是程序每次從新啟動(dòng),系統不能保證分配給這個(gè)程序的句柄還是原來(lái)的那個(gè)句柄,而且絕大多數情況的確不一樣的。假如我們把進(jìn)入電影院看電影看成是一個(gè)應用程序的啟動(dòng)運行,那么系統給應用程序分配的句柄總是不一樣,這和每次電影院售給我們的門(mén)票總是不同的一個(gè)座位是一樣的道理。
 
 
***************************************************************************************************
 
句柄是一些表的索引也就是指向指針的指針,句柄和指針都是地址,句柄是Windows編程的一個(gè)關(guān)鍵性的概念,編寫(xiě)Windows應用程序總是要和各種句柄打交道。
    所謂句柄,就是一個(gè)唯一的數,用以標識許多不同的對象類(lèi)型,如窗口、菜單、內存、畫(huà)筆、畫(huà)刷、電話(huà)線(xiàn)路等。在Win32里,句柄是指向一個(gè)“無(wú)類(lèi)型對象”(void*)的指針,也就是一個(gè)4字節長(cháng)的數據。無(wú)論它的本質(zhì)是什么,句柄并不是一個(gè)真正意義上的指針。
    從構造上看,句柄是一個(gè)指針,盡管它沒(méi)有指向用于存儲某個(gè)對象的內存位置。事實(shí)上,句柄指向一個(gè)包含了對該對象進(jìn)行的引用的位置。
    句柄的聲明是這樣的:
    typedef void *HANDLE
      由于Windows是一個(gè)多任務(wù)操作系統,它可以同時(shí)運行多個(gè)程序或一個(gè)程序的多個(gè)副本。這些運行的程序稱(chēng)為一個(gè)實(shí)例。
    為了對同一程序的多個(gè)副本進(jìn)行管理,Windows引入了實(shí)例句柄。Windows為每個(gè)應用程序建立一張表,實(shí)例句柄就好象是這張表的一個(gè)索引。
   
    不同在于:
    1,句柄所指的可以是一個(gè)很復雜的結構,并且很有可以是與系統有關(guān)的,比如說(shuō)上面所說(shuō)的線(xiàn)程的句柄,它指向的就是一個(gè)類(lèi)或者結構,他和系統有很密切的關(guān)系,當一個(gè)線(xiàn)程由于不可預料的原因,而終止時(shí)在系統就可以回它所占用的資源,如CPU,內存等等,反過(guò)來(lái)想可以知道,這個(gè)句柄中的某一些項,是與系統進(jìn)行交互的。由于Windows系統,是一個(gè)多任務(wù)的系統,它隨時(shí)都可能要分配內存,回收內存,重組內存。
    2,指針它也可以指向一個(gè)復雜的結構,但是通常是用戶(hù)定義的,所以的必需的工作都要用戶(hù)完成,特別是在刪除的時(shí)候。
    但在VC++6.0中也有一些指針,它們都是處理一些小問(wèn)題才用的,如最常見(jiàn)的字符的指針,它也是要用戶(hù)處理的如果你動(dòng)態(tài)分配了內存;但是Cstring就不要用戶(hù)處理了,它其實(shí)是VC++中的一個(gè)類(lèi),所以的操作都由成員函數完成,產(chǎn)生(分配)由構造函數,刪除(回收)由析構函數完成。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
句柄和指針的區別
句柄到底是什么意思?!
句柄和指針區別
Windows共享內存示例
Java:對象創(chuàng )建和初始化過(guò)程
句柄 指針
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久