句柄有多種意義:1、在程式設計中,指一種特殊的智慧指標;2、在Windows程式設計中,是Windows用來識別被應用程式所建立或使用的物件的唯一整數,Windows使用各種各樣的句柄標識諸如應用程式實例,窗口,控制,點陣圖,GDI物件等等。
句柄(handle),有兩個解釋
第一種解釋:句柄是一種特殊的智慧指標 。當一個應用程式要引用其他系統(如資料庫、作業系統)所管理的記憶體區塊或物件時,就要使用句柄。
第二種解釋:整個Windows程式設計的基礎。
句柄是Windows用來識別被應用程式所建立或使用的物件的唯一整數,WINDOWS使用各種各樣的句柄標識諸如應用程式實例,窗口,控制,點陣圖,GDI物件等等。
一個句柄是指使用的一個唯一的整數值,即一個4位元組(64位元程式中為8位元組)長的數值,來標識應用程式中的不同物件和同類中的不同的實例,諸如,一個窗口,按鈕,圖標,滾動條,輸出設備,控制項或文件等。應用程式能夠透過句柄存取相應的物件的信息,但是句柄不是指針,程式不能利用句柄來直接閱讀文件中的信息。如果句柄不在I/O檔案中,它是毫無用處的。句柄是Windows用來標誌應用程式中建立的或是使用的唯一整數,Windows大量使用了句柄來識別物件。
Windows之所以要設立句柄,根本上源自於記憶體管理機制的問題,也就是虛擬位址。簡而言之資料的位址需要變動,變動以後就需要有人來記錄、管理變動,因此系統用句柄來記載資料位址的變更。在程式設計中,句柄是一種特殊的智慧指針,當一個應用程式要引用其他系統(如資料庫、作業系統)所管理的記憶體區塊或物件時,就要使用句柄。
說明:
句柄在Windows程式設計中是一個很重要的概念,在Windows程式中並不是用實體位址來識別一個記憶體區塊、檔案、任務或動態裝入模組的。相反地,Windows API給這些項目分配確定的句柄,並將句柄傳回給應用程序,然後透過句柄來進行操作。
應該要明白的是,句柄是一個標識符,是用來標識物件或項目的。從資料型別來看它只是一個16位元的無符號整數。應用程式幾乎總是透過呼叫一個Windows函數來獲得一個句柄,之後其他的Windows函數就可以使用該句柄,以引用對應的物件。在 Windows程式設計中會用到大量的句柄。
以上是句柄是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!