什麼是裝置上下文 思考ing

2021-04-17 21:02:45 字數 728 閱讀 5352

接觸mfc時間也不短了,對裝置上下文的認識還是模糊的. 以下是輸入法程式設計要用到的"輸入法上下文"的乙個口語化解釋, 由此有利於對裝置上下文的理解.

輸入法上下文(himc):himc是什麼?在輸入法程式設計時必然要接觸到輸入法上下文這個術語,剛接觸時聽起來實在是半懂不懂。由於輸入法是乙個外掛程式,它需要和呼叫它的應用程式通訊,在輸入法中生成的編碼及重碼資訊儲存在**應用程式才能正確的讀取呢?答案就在於輸入法上下文。輸入法上下文是由user.exe(乙個系統程序)為應用程式分配的記憶體控制代碼,在應用程式中啟動的輸入法在這塊記憶體中寫入資料,user.exe再將資料傳遞到應用程式。

裝置上下文(dc)我們不妨這樣理解:

兩個實體: 1. 乙個視窗物件, 2. 要顯示此視窗的裝置(顯示器,印表機等).

三個問題: 1. 這兩個物件怎麼通訊呢?  2.假設要在視窗上(100,200)位置顯示的"abc***", 這個字串和座標資訊存放在**,怎樣傳給裝置呢? 3. 假設要知道裝置上顯示的字型大小或背景色,那麼視窗物件從**去得到呢?

答案就在於裝置上下文^-^ 。乙個視窗物件建立時就會被分配一塊專門用於裝置的記憶體,視窗要顯示的內容就寫到這裡,要獲取裝置的屬性也從這裡拿(不知道能不能把裝置上下文理解為視窗物件和裝置之間的一塊共享記憶體呢, 我想大概就是這樣.). 而我們對這塊內容的合法訪問方式就是, 建乙個cdc物件,把物件和這塊記憶體關聯起來,通過cdc的方法進行通訊.  所以,相容dc的理解就是: 生成這塊記憶體的乙個拷貝,在拷貝中做好顯示內容處理,再把內容複製到原dc.

什麼是程序上下文,什麼是中斷上下文

程序上下文和中斷上下文是作業系統中很重要的兩個概念,這兩個概念在作業系統課程中不斷被提及,是最經常接觸 看上去很懂但又說不清楚到底怎麼回事。造成這種局面的原因,可能是原來接觸到的作業系統課程的教學總停留在一種淺層次的理論層面上,沒有深入去研究。處理器總處於以下狀態中的一種 核心態,執行於程序上下文,...

什麼是程序上下文,什麼是中斷上下文

處理器總處於以下狀態中的一種 核心態,執行於程序上下文,核心代表程序執行於核心空間 核心態,執行於中斷上下文,核心代表硬體執行於核心空間 使用者態,執行於使用者空間。使用者空間的應用程式,通過系統呼叫,進入核心空間。這個時候使用者空間的程序要傳遞很多變數 引數的值給核心,核心態執行的時候也要儲存使用...

什麼是程序上下文,什麼是中斷上下文

程序上下文和中斷上下文是作業系統中很重要的兩個概念,這兩個概念在作業系統課程中不斷被提及,是最經常接觸 看上去很懂但又說不清楚到底怎麼回事。造成這種局面的原因,可能是原來接觸到的作業系統課程的教學總停留在一種淺層次的理論層面上,沒有深入去研究。處理器總處於以下狀態中的一種 核心態,執行於程序上下文,...