程式設計過程中,常常會遇到或使用到指標或控制代碼,這裡簡單說說有關指標、控制代碼間的轉換。
指標的使用在程式設計過程中至關重要,恰到好處並能正確無誤的使用指標不但能夠提高程式自身的執行效率,而且有助於節省程式執行所需要消耗的資源。指標對應著某個資料在記憶體空間中的位址,得到了指標就可以自由地修改該資料。控制代碼代表指標的「指標」,也可以將其比作表中資料項的索引值( 表對應某個程序自身的記憶體空間 )。控制代碼是間接的引用物件。
指標和控制代碼的不同之處:
具體轉換:
( 控制代碼轉為指標 )
cwnd* pwnd=fromehandle(hmyhandle);
pwnd->setwindowtext("hello world!");
or
cwnd* pwnd;
pwnd->attach(hmyhandle);
mfc類中有的還提供了標準方法,比如window控制代碼:
static cwnd* pascal fromhandle(
hwnd hwnd
);
hwnd getsafehwnd( ) const;
對於位圖:
static cbitmap* pascal fromhandle(
hbitmap hbitmap
);
static cgdiobject* pascal fromhandle(
hgdiobj hobject
);
hgdiobj getsafehandle( ) const;
當然,更詳細的資訊需要在具體使用中自我查詢。
建 議:指標和控制代碼的使用屬於比較複雜、危險性較高的應用,在具體實踐中,如果可以,盡量不要使用指標和控制代碼,最好選擇現有的、封裝完好的方式來實現,更別提指標同控制代碼的轉換了,它更加危險。
比如在操作字串時,盡量使用cstring類來實現,通過定義好的構造、析構函式來完成分配和**,最好不要通過指標來動態操作。
指標與控制代碼的區別
指標與控制代碼的區別 1 什麼是控制代碼?控制代碼在windows程式設計中是乙個很重要的概念,在很多程式中都扮演者重要的角色。在windows環境中,控制代碼是用來標識專案的,這些專案包括 模組,任務,例項,檔案,記憶體塊,選單,控制,字型,資源 包括圖示,游標,字串等 gdi物件 包括位圖,畫刷...
控制代碼與指標的區別
控制代碼實際上是一種指向某種資源的指標,但與指標又有所不同 指標對應著乙個資料在記憶體中的位址,得到了指標就可以自由地修改該資料。windows並不希望一般程式修改其內部資料結構,因為這樣太不安全。所以windows給每個使用globalalloc等函式宣告的記憶體區域指定乙個控制代碼 本質上仍是乙...
指標與控制代碼的區別
最近兩天在複習一些c 的知識,中間發現了許多以前沒有注意過的問題。關於控制代碼以前總是將其理解為指標,其實不然,他們之間有著明顯的區別。首先,指標指向系統中物理記憶體的位址,而控制代碼是windows在記憶體中維護的乙個物件記憶體實體地址列表的整數索引,控制代碼是一種指向指標的指標。在windows...