標籤:程式碼 地址 建立 啟動 地區 就是 公司 一個 and
在Windows中,程式的基本單位不是過程和函數,而是視窗。一個視窗是一組資料以及處理這些資料的視窗函數的集合。如果從物件導向的角度考慮,視窗本身就是一個對象。Windows程式的執行過程本身就是視窗等對象的建立、處理和消亡的過程。Windows中訊息的發送可以理解為一個視窗對象向其他視窗對象請求服務的過程。因此。物件導向的編程思想是進行windows程式設計的首選。
一.控制代碼
微軟將這種描述了事物的資料結構執行個體都叫做對象。微軟公司雖然在Windows系統中定義了這些資料結構,但並未向使用者公開,因此,為了使使用者應用程式可以建立並獲得這種對象,Windows在API中提供了相應的服務函數,使用者通過調用這種函數獲得由系統建立的對象。由於使用這種方法建立的對象位於核心記憶體空間,故稱為核心對象。但是必須注意,使用者調用API函數建立核心對象成功之後,函數返回的是Windows作業系統為這個核心對象所編製的一個4位元組的整數臨時編號。為了程式的可讀性,並根據這個編號的用途,Windows對這個整型資料變數定義了一個別名:“控制代碼(Handle)”。
一個控制代碼就表示一個核心對象。
之所以叫做控制代碼類型,因為它與生活中刀柄,鍋柄的作用相似,意思就是使用者只要獲得了控制代碼,那麼也就獲得了安裝在核心對象上的“手柄”,就能在不直接接觸這個對象的情況下進行操作。從使用的角度看,控制代碼與指標的功能相似,都是指向一個對象或儲存地區,但指標是一個地址,而控制代碼只是一個整型形式的編號且不能像指標那樣參與運算。
1.HINSTANCE控制代碼
HINSTANCE控制代碼——應用程式執行個體控制代碼。
在作業系統眼裡,應用程式是一個代碼的運行過程,是它負責運行和管理的一個對象。因此作業系統必須在程式運行之前為這個程式建立一個結構體變數,以便在程式運行起來後記錄該程式的運行進度、狀態、記憶體佔用情況、檔案和外設的使用方式的相關資料,並根據這些資料對程式的運行進行管理。Windows作業系統是通過這個與程式碼相關聯的資料結構變數來掌控一個程式的運行。Windows中的這種以表示一個程式運行過程的核心對象,叫做進程對象或進程,也叫做“進程式控制制塊”。在Windows中,這種進程式控制制塊的類型就是HINSTANCE。
HINSTANCE類型控制代碼看成是Windows定義的一個新的資料類型——程式類型,而其對象則相當於是一個程式類型的變數,這個變數就代表一個正在啟動並執行程式,Windows每運行一個程式就會把該程式的指標賦予這個變數,程式可以使用這個變數對一個程式進行操作。注意:如果使用者啟動了兩次Word應用程式,那麼在系統中就有兩個Word的應用程式執行個體控制代碼存在。
Windows 程式基礎