多媒體編程基礎_2_第1頁
多媒體編程基礎_2_第2頁
多媒體編程基礎_2_第3頁
多媒體編程基礎_2_第4頁
多媒體編程基礎_2_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微軟提供的Microsoft Visual Studio 2010集成開發環境 (IDE,Integrated Development Environmen)是比較流行的開發工具,它在前期產品Visual Studio 2010的基礎之上進行了全面升級,它是面向Windows 7、Office 2010、Web 3.0的開發工具。Visual Studio 2010環境中集成了Visual C+,Visual C#、Visual Basic等常用軟件。創建應用程序 簡單了解VC2010的用法, 使用VC2010創建 使用VC2010創建 使用VC2010創建托管C+非 Unicode 環境 (

2、Code Once,Run Anywhere)。)。 由兩個主要因素組成:CLR(the Common Language Runtime)公共語言運行庫和FCL(Framework Class Library).NET Framework類庫。程序在CLR中運行。FCL則提供了程序所需的功能,而不管是用何種語言開發的程序。一種是用符合ISO/ANSI語言標準開發的,此類程序稱為程序;一種是在,此類程序成為程序。.NET Framework嚴格地說不是VC+ 2008的一部分,而是Windows操作系統的一部分,它使得運行程序和Web變得很簡單。公共語言運行庫是一個運行用高級語言編寫程序的標準環

3、境,高級語言包括Visual Basic,C#和C+。ECMA(歐洲計算機制造商,European Computer Manufactures)把作為CLI(通用語言基礎結構,Common Language Infrastructure)、ECMA-335的標準。同樣,CLR也被選為ISO/IEC23171的標準。所以,這就是為什么C+為CLR制定了CLI,并且CLI編譯器可以在其他操作系統上運行的原因。,虛擬機可以使運用高級語言編寫的軟件在不同的系統環境中不用改變和重新編譯程序而生成目標代碼。用高級語言編寫的代碼在進行編譯時CLI為虛擬機定義了一些中間語言的標準。生成的中間語言稱為MSIL(

4、Microsoft Intermediate Language)。在運行軟件時,中間代碼被JIT(just-in-time)編譯成最終的機器代碼。中間代碼可以在任何有CLI的平臺上運行。CLR是僅有的一個運行在Windows平臺下的CLI平臺,當然在其他操作系統和硬件上也有其他CLI平臺。雖然CLI和CLR不同,但是有時這兩個平臺在運用時可以相互交換。CLI是一個標準的定義,而CLR則是CLI在微軟平臺下的實現。使用C+/CLI 例:利用向導創建基于CLR的“Windows窗體應用程序” 運行時可以看出,標題欄的圖標不再是MFC的了,因為它已經是一個CLR程序。 再看代碼: FCL是一套以支持

5、Web標準和應用為主的、易用的、高度可擴展的類庫。該類庫是面向對象的,并提供用戶自己的托管代碼,可以從中導出功能的類型。FCL包括BCL(Basic Class Library),Data,XML類,以及用于Web Services、Web Forms、Windows Forms類。 .NET框架的FCL統一了應用程序的開發模式,通過提供一致的功能,任何程序語言和開發模式都可以使用一致的API。 FCL以命名空間(Namespace)和類(Class)分層組織,并提供了統一的類型系統(Unified Type System),還提供了面向組件的類庫(Component Oriented)、屬性

6、、方法、事件及屬性信息。正如圖所示,Windows 內核分為三層,與硬件直接打交道的這一層稱為硬件抽象層(Hardware Abstraction Layer,簡稱HAL),這一層的用意是把所有與硬件相關聯的代碼邏輯隔離到一個專門的模塊中,從而使上面的層次盡可能做到獨立于硬件平臺。HAL之上是內核層,有時候也稱為微內核(micro-kernel),這一層包含了基本的操作系統原語和功能,如線程和進程、線程調度、中斷和異常的處理、同步對象和各種同步機制。在內核層之上則是執行體(executive)層,這一層的目的是提供一些可供上層應用程序或內核驅動程序直接調用的功能和語義。Windows 內核的執

7、行體包含一個對象管理器,用于一致地管理執行體中的對象。執行體層和內核層位于同一個二進制模塊中,即內核基本模塊,其名稱為ntoskrnl.exe。內核層和執行體層的分工是,內核層實現操作系統的基本機制,而所有的策略決定則留給執行體。執行體中的對象絕大多數封裝了一個或者多個內核對象,并且通過某種方式(比如對象句柄)暴露給應用程序。這種設計體現了機制與策略分離的思想。圖2.3 顯示了Windows 內核的詳細組成結構。Windows 內核為用戶模式代碼提供了一組系統服務,供應用程序使用內核中的功能。應用程序通常并不直接調用這些系統服務,而是通過一組系統DLL,最終通過ntdll.dll 切換到內核模

8、式下的執行體API 函數中,以調用內核中的系統服務。Ntdll.dll 是連接用戶模式代碼和內核模式系統服務的橋梁。對于內核提供的每一個系統服務,該DLL 都提供一個相應的存根函數,這些存根函數的名稱以“Nt”作為前綴,例如NtCreateProcess、NtOpenFile和NtSetTimer。另外,ntdll.dll 還提供了許多系統級的支持函數,比如映像加載器函數(以“Ldr”為前綴)、Windows 子系統進程通信函數(以“Csr”為前綴)、調試函數(以“Dbg”為前綴)、系統事件函數(以“Etw”為前綴),以及一般的運行支持函數(以“Rtl”為前綴)和字符串支持函數等。執行體API

9、 函數接收的參數來自于各種應用程序,因此,為了確保系統的健壯性,以及抵抗來自用戶模式的惡意攻擊,所有的執行體API 函數必須保證參數的有效性。這意味著它們必須在恰當的時刻檢查參數的值,若是指針的話,還必須保證調用者可以訪問指針所指的內存。通常,執行體系統服務函數會在其開始處,對所接收的參數逐一探查它們的可訪問性。 面向對象的特性 窗口,句柄 消息,消息循環 Debug,Release MFC框架(Dlg成員生命周期,堆、棧) 消息映射 對話框、控件、菜單、工具欄、狀態欄(子窗口)函數的重載在文檔/視圖結構的應用程序中,當用戶單擊某個菜單項時, 程序會先執行模板對象的OnCmdMsg方法;然后執

10、行框架的OnCmdMsg方法。框架的OnCmdMsg方法代碼如下 :BOOL CFrameWnd:OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) CPushRoutingFrame push(this); CView* pView = GetActiveView(); if (pView != NULL & pView-OnCmdMsg(nID, nCode, pExtra, pHandlerInfo) return TRUE; if (CWnd:OnCmdMsg(nID, nCode, pEx

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論