以下我們給大家詳細講述了易語言中的控制代碼的概念和含義
這是作業系統裡的乙個概念,控制代碼是wondows用來標識被應用程式所建立或使用的物件的唯一整數,windows使用各種各樣的控制代碼標識諸如應用程式例項,視窗,控制,位圖,gdi物件等等。windows控制代碼有點象c語言中的檔案控制代碼。
從上面的定義中的我們可以看到,控制代碼是乙個識別符號,是拿來標識程式設計客棧物件或者專案的,它就象我們的姓名一樣,每個人都會有乙個,不同的人的姓名不一樣,但是,也可能有乙個名字和你一樣的人。從資料型別上來看它只是乙個16位的無符號整數。應用程式幾乎總是通過呼叫乙個windows函式來獲得乙個控制代碼,之後其他www.cppcns.com的windows函式就可以使用該控制代碼,以引用相應的物件。
如果想更透徹一點地認識控制代碼,我可以告訴大家,控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留www.cppcns.com在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以虛擬記憶體為基礎的作業系統。在這種系統環境下,windows記憶體管理器經常在記憶體中來回移動物件,依此來滿足各種應用程式的記憶體需要。物件被移動意味著它的位址變化了。如果位址總是如此變化,我們該到**去找該物件呢?
為了解決這個問題,windows作業系統為各應用程式騰出一些內儲存位址,用來專門登記各應用物件在記憶體中的位址變化,而這個位址(儲存單元的位置)本身是不變的。windows記憶體管理器在移動物件在記憶體中的位置後,把物件新的位址告知這個控制代碼位址來儲存。這樣我們只需記住這個控制代碼位址就可以間接地知道物件具體在記憶體中的哪個位置。這個位址是在物件裝載(load)時由系統分配給的,當系統解除安裝時(unload)又釋放給系統。
控制代碼位址(穩定)→記載著物件在記憶體中的位址————→物件在記憶體中的位址(不穩定)→實際物件
本質:windows程式中並不是用實體地址來標識乙個記憶體塊,檔案,任務或動態裝入模組的,相反的,windows api給這些專案分配確定的控制代碼,並將控制代碼返回給應用程式,然後通www.cppcns.com過控制代碼來進行操作。
但是必須注意的是程式每次從新啟動,系統不能保證分配給這個程式的控制代碼還是原來的那個控制代碼,而且絕大多數情況的確不一樣的。假如我們把進入電影院看電影看成是乙個應用程式的啟動執行,那麼系統給應用程式分配的控制代碼總是不一樣,這和每次電影院售給我們的門票總是不同的乙個座位是一樣的道理。
本文標題: 講解易語言控制代碼的概念
本文位址: /ruanjian/yiyuyan/244223.html
易語言關閉多執行緒控制代碼方法
命令名 關閉執行緒控制代碼 返回真表示已成功關閉執行緒控制代碼。在linux下,如果執行緒已經結束,本命令可能返回假。本命令為初級命令。引數資料型別 說明執行緒控制代碼 整數型 int 可通過 啟動執行緒 的第三個引數獲取執行緒控制代碼。使用例子 版本 2 支援庫 ethread 程式集 程式集1 ...
例項講解易語言陣列排序
易語言陣列排序,就是將陣列排序,這個針對的是數值型陣列,我教大家操作。1 開啟易語言新建乙個wi程式設計客棧ndows程式進入下圖介面 2 我們點選進入 編輯區 3 這個函式針對www.cppcns.com陣列 所以要先定義乙個陣列 4 我們給陣列賦值 我們輸入 a www.cppcns.com1 ...
例項講解易語言靜態編譯
正在進行名稱連線.正在統計需要編譯的子程式正在編譯.正在生成主程式入口 程式 編譯成功等待使用者輸入欲編譯到的檔名正在進行名稱連線.開始靜態鏈結.www.cppcns.com無法定位鏈結器!請檢查 tools link.ini 中的www.cppcns.com配置是否正確。靜態連線失敗 上述所遇到的...