第2章Windows操作系統(tǒng)的發(fā)展.ppt_第1頁
第2章Windows操作系統(tǒng)的發(fā)展.ppt_第2頁
第2章Windows操作系統(tǒng)的發(fā)展.ppt_第3頁
第2章Windows操作系統(tǒng)的發(fā)展.ppt_第4頁
第2章Windows操作系統(tǒng)的發(fā)展.ppt_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第2章 Windows操作系統(tǒng)的發(fā)展,2.1 Windows的起源 2.2 Windows 95和Windows 98 2.3 Windows NT操作系統(tǒng) 2.4 Windows 2000 2.5 Windows XP 2.6 Windows的應(yīng)用程序接口 2.7 Windows中的句柄 2.8 應(yīng)用實例,2.1 Windows的起源,GUI的起源 Windows各個版本的發(fā)布情況 Windows1.0Windows3.0,2.2 Windows 95和Windows 98,Windows 95特點 Windows 98 特點,2.3 Windows NT操作系統(tǒng),新增功能 特點,2.5 W

2、indows XP,Windows XP Home Edition Windows XP Professional Windows XP Professional 的新特性,2.4 Windows 2000,新增功能 特點,2.6 Windows的應(yīng)用程序接口,動態(tài)鏈接庫 應(yīng)用程序接口,應(yīng)用程序接口的使用方法,API是一個例程,應(yīng)用程序通過這些例程來請求操作系統(tǒng)完成某些服務(wù)。例如:應(yīng)用程序窗口,圖標(biāo)、菜單和對話框就是由API來管理的。 有兩類API組件: 1.WIN16 API(雖然以執(zhí)行文件形式出現(xiàn),但仍然為DLL) USER.EXE GDI.EXE KRNL386.EXE 2.WIN32

3、API(以DLL動態(tài)鏈接庫來實現(xiàn)) USER32.DLL 用戶接口界面 GDI32.DLL 圖形設(shè)備接口 KERNEL32.DLL 內(nèi)核,基于 Windows API 函數(shù)的程序設(shè)計方法 API 就是應(yīng)用程序編程接口,Windows API 由大量的 C 函數(shù)所組成(Windows API 參考手冊)?;?API 設(shè)計 Windows 應(yīng)用程序時,開發(fā)者需要直接調(diào)用 API 函數(shù),必須編寫大量代碼,并且熟知 Windows 應(yīng)用程序的框架,這無疑增加了程序的編寫難度,當(dāng)然這樣編寫的程序會比較靈活。,基于 MFC 的程序設(shè)計方法 MFC(Microsoft 基本類庫)是一個很大的 C+ 類層次

4、結(jié)構(gòu),其中封裝了大量的類及其函數(shù),很多 Windows 程序所共有的標(biāo)準(zhǔn)內(nèi)容可以由 MFC 的類來提供。如窗口、按鈕等標(biāo)準(zhǔn)部件都有相應(yīng)的類,程序中用到這些標(biāo)準(zhǔn)部件時,直接使用即可。因此,使用 MFC編程,程序員可以把注意力集中于自己的程序所特有的部分,不需要事事親自動手。與直接調(diào)用 API 函數(shù)編程相比,這將會大量減少程序員編寫的代碼數(shù)量,使編程工作變得更容易;同時,程序標(biāo)準(zhǔn)部分由 MFC 的類來提供,將使程序變得更規(guī)范,更具可讀性,效率也更高。 MFC 的最大優(yōu)點是它以高效簡潔的方式為開發(fā)者做了所有標(biāo)準(zhǔn)部分的工作。MFC 中包含了成千上萬行正確、經(jīng)過優(yōu)化和功能強(qiáng)大的 Windows 代碼。只

5、要定義了某個類的對象,就可以調(diào)用該類的成員函數(shù),輕輕松松完成本來應(yīng)該由你自己一行行書寫的程序。從這點上講,MFC 極大地降低了程序開發(fā)難度。 Visual C+ 6.0 應(yīng)用程序開發(fā)程序環(huán)境特別適合于使用 MFC(也有其他開發(fā)環(huán)境使用MFC)。 可以在MFC程序中直接調(diào)用API函數(shù) ,且不用聲明,不用包含其他頭文件 。,Any 數(shù)據(jù)類型 :具有多種數(shù)據(jù)類型 的靈活性,運行時不進(jìn)行任何的類型檢查 。 例:下面的聲明中的第三個參數(shù) (lppt As Any) 既可以傳遞一個 POINT 結(jié)構(gòu)的數(shù)組,也可以傳遞一個 RECT 結(jié)構(gòu): Declare Function MapWindowPoints

6、Lib user32 Alias MapWindowPoints (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any,ByVal cPoints As Long) As Long,調(diào)用API的方式 (1)忽略函數(shù)返回值的調(diào)用 SetWindowPos Form1.hWnd, -2 ,0 ,0 ,0, 0, 3 。 (2)Call方法調(diào)用 Call SetWindowPos(Form1.hWnd, -2, 0, 0, 0, 3) (3)取得函數(shù)返回值的調(diào)用 MyLng = SetWindowPos(Form1.hWnd, -2,

7、0, 0, 0, 3),2.7 Windows中的句柄,Windows的對象用一個32位的整數(shù)進(jìn)行標(biāo)識,稱為“句柄”(Handle)。即句柄是一個對象的標(biāo)識符。,Windows中一些較為重要的句柄,窗口句柄,窗口句柄用來標(biāo)識一個窗口,窗體和控件都可以看作是一個窗口 例:Private Declare Function FlashWindow Lib user32 Alias FlashWindow (ByVal hwnd As Long, ByVal bInvert As Long) As Long,設(shè)備環(huán)境句柄,設(shè)備環(huán)境句柄(hDC)用來標(biāo)識一個稱為設(shè)備環(huán)境的對象,當(dāng)在窗口中繪圖時要用到這個

8、環(huán)境。該句柄用于窗體、圖片框和打印機(jī),它識別這些對象的設(shè)備環(huán)境。 Private Declare Function TextOut Lib gdi32 Alias TextOutA (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long,28 應(yīng)用實例,句柄及窗體閃爍 獲取計算機(jī)名稱 獲得操作系統(tǒng)版本,2.獲取計算機(jī)名稱API函數(shù),例如: TCHAR szBuffer256; DWORD dwSize=256; GetCoumput

9、erName(szBuffer, 前一個參數(shù)是字符緩沖區(qū),后一個參數(shù)其地址用來存放此字符緩沖區(qū)的最大長度。,BOOL GetComputerName( LPTSTR lpBuffer, LPDWORD lpnSize); 功能:獲取計算機(jī)的名稱 參數(shù):lpBuffer是TCHAR類型,TCHAR的數(shù)量可以設(shè)置為MAX_COMPUTERNAME_LENGTH+1 lpnSize是lpBuffer的位數(shù),3.獲得操作系統(tǒng)版本API函數(shù),BOOL GetVersionEx(LPOSVERSIONINFO lpVersionInfor ); 參數(shù)lpVersionInfor是指向OSVERSIONIN

10、FO結(jié)構(gòu)的指針 。,typedef struct _OSVERSIONINFO DWORD dwOSVersionInfoSize;/指定該數(shù)據(jù)結(jié)構(gòu)的字節(jié)大小DWORD dwMajorVersion;/操作系統(tǒng)的主版本號DWORD dwMinorVersion;/操作系統(tǒng)的副版本號DWORD dwBuildNumber;/操作系統(tǒng)的創(chuàng)建號DWORD dwPlatformId;/操作系統(tǒng)ID號TCHAR szCSDVersion 128 ;/關(guān)于操作系統(tǒng)的一些附加信息 OSVERSIONINFO;,編程舉例:,OSVERSIONINFO osver; osver.dwOSVersionInfoS

11、ize =sizeof(OSVERSIONINFO); GetVersionEx(,4.獲得系統(tǒng)信息API函數(shù),函數(shù)原型 VOID GetSystemInfo(LPSYSTEM_INFO lpSystemInfo); 參數(shù)lpSystemInfo是指向SYSTEM_INFO結(jié)構(gòu)的指針,SYSTEM_INFO結(jié)構(gòu)的定義如下: typedefstruct_SYSTEM_INFO union DWORDdwOemId;/子結(jié)構(gòu)(已廢棄的成員) structWORDwProcessorArchitecture;/CPU的體系結(jié)構(gòu) WORDwReserved;/保留 ; ;DWORDdwPageSize

12、; /頁面的大小 LPVOIDlpMinimumApplicationAddress;/最低內(nèi)存地址 LPVOIDlpMaximumApplicationAddress;/最高內(nèi)存地址 DWORDdwActiveProcessorMask;/CPU的掩碼 DWORDdwNumberOfProcessors;/CPU的數(shù)目 DWORDdwProcessorType;/ CPU 類型 DWORDdwAllocationGranularity;/虛擬內(nèi)存空間的粒度 WORDwProcessorLevel;/體系結(jié)構(gòu)依賴的CPU級別 WORDwProcessorRevision;/系統(tǒng)體系結(jié)構(gòu)依賴的C

13、PU版本號 SYSTEM_INFO;,5.獲得物理內(nèi)存和虛擬內(nèi)存信息API函數(shù),函數(shù)原型為:VOID GlobalMemoryStatus (LPMEMORYSTATUS lpBuffer);參數(shù)lpBuffer是一個指向名為MEMORYSTATUS的結(jié)構(gòu)的指針。函數(shù)的返回信息會被存儲在MEMORYSTATUS結(jié)構(gòu)中。 此函數(shù)無返回值。,MEMORYSTATUS結(jié)構(gòu)定義: typedef struct _MEMORYSTATUS / mst DWORD dwLength; / sizeof(MEMORYSTATUS) DWORD dwMemoryLoad; / percent of memor

14、y in use DWORD dwTotalPhys; / bytes of physical memory DWORD dwAvailPhys; / free physical memory bytes DWORD dwTotalPageFile; / bytes of paging file DWORD dwAvailPageFile; / free bytes of paging file DWORD dwTotalVirtual;/ user bytes of address space DWORD dwAvailVirtual;/ free user bytes MEMORYSTATUS

溫馨提示

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

最新文檔

評論

0/150

提交評論