Win32程式設計,又常常被叫做SDK/API編程,現在使用Win32的程式員確實已經很少了,主要是因為用win32寫代碼比用vc寫起來還累,但是Win32編程常常又是非常有效率的,現在用的比較多的就是在編寫遊戲中.很多人在學習VC的時候總是抱怨vc太難了,有點老虎吃天的感覺,總是不知道如何下口,甚至有些人用了一兩年都還沒有入門,如果你有這樣的感覺,不如先去讀一下關於Win32 SDK的資料,我想對你是有很大協助的,下面我要發的這篇文章呢並不是偶寫的,是偶師傅寫的,後來我用MFC的物件導向的思想封裝過SDK的結構化程式,但是一直沒有對此做一個總結,有時間偶一定會補上啦!!!!
Windows程式設計的基本概念
程式設計:基於作業系統和語言系統的資源,運用網路與資料庫的技術,針對問題的專業需求,按照軟體工程的規範,利用語言系統的文法機制,描述求解問題的過程。我們把作業系統資源、語言系統資源、網路技術、資料庫技術、專業需求、軟體規範和文法規則稱為程式設計邏輯的七大要素。通常所謂C++程式設計、Fortran語言程式設計、PASCAL語言程式設計等是從文法的角度學習程式設計的基本文法規則和程式設計方法;所謂VC++程式設計比較符合上述我們所述的程式設計思想,主要是從基於作業系統資源的角度運用語言系統的資源進行程式設計,需要具備C++面相對象的良好功底和Win32 API資源透徹的理解;我們目前進行的Windows程式設計,是從作業系統資源的角度學習,這是對Windows專業程式開發最本質的學習,是我們從非專業邁向專業大門最有力的開始。
Win32 API:如果把作業系統比作軟體大廈,那麼Win32 API就是建造32位Windows作業系統(Windows 9x、Windows NT、Windows 2000、Windows me、Windows CE、Windows XP)的預製件,它是Microsoft公司為其32位的作業系統平台的軟體開發、為軟體開發人員提供的作業系統資源的使用介面或稱API(Application programming interface),所覆蓋的領域包括:Windows系統管理、系統資訊、系統安全、進程、線程、動態連結、記憶體管理、檔案系統、鍵盤和滑鼠輸入、GDI對象、網路通訊、資源管理、列印、程式調試、異常處理等等。它們以動態連結程式庫的形式,存在於作業系統中,供作業系統和Win32應用程式調用。
Win32平台:支援Win32應用程式啟動並執行平台,諸如:Win32S、Windows 9x、Windows NT、Windows 2000、Windows me、Windows CE、Windows XP等,如果Win32應用程式比作CD的音樂碟片,那麼CD的平台就是CD隨身聽、VCD影碟機、DVD影碟機了。
任務:運行在作業系統上的應用程式,即作業系統執行的任務。
多任務:在同一個時間段裡執行多個任務,即多任務。Windows 3.x是一個協同式的多任務的作業系統;32位的Windows是基於進程、線程優先順序的分時的多任務作業系統。
進程:作業系統構造任務、分配資源的機制,也可以理解為作業系統關於任務執行、調度和資源分派的基本單位;是程式碼、資料和資源的集合,這裡的資源套件括:地址空間資源、CPU時間資源(線程)、記憶體資源、檔案資源、通訊資源、顯示資源等等。Win32應用程式的代碼、資料及資源分布在4GB的地址空間中,作業系統分配給進程的線程資源驅動程式的運行,程式在記憶體運行。
線程:作業系統驅動進程的機制即線程,也可以理解為作業系統關於CPU時間資源的分配單位,是線程驅動進程的運行。一個作業系統可以同時運行多個進程,一個進程中可以有多個線程。進程和線程是有優先順序的。Win32的應用程式通過基於優先順序的多進程、多線程的機制,實現搶先式多任務。這種搶先的能力水平,由進程和線程的優先順序賦予。
事件:廣義地講,發生在電腦系統中的行為和操作;狹義講,作業系統、使用者施加給軟體對象(廣義的可理解為任務,狹義的可理解為軟體視窗對象)的行為和操作。
訊息:事件的程式描述即訊息,程式中的訊息描述類似日常工作中的事件記錄,從時間、地點、人物、事件、事由等方面描述當日發生的事件;從另一個角度講訊息是驅動視窗對象動作的指令,從總體上可以把訊息分為使用者訊息、控制訊息、系統訊息和程式訊息四類。
訊息佇列:使用者和作業系統對軟體對象施加的行為和操作的描述列表,作業系統以線程為單位,為線程建立的視窗對象建立訊息佇列,即與某個視窗對象有關的訊息,作業系統將訊息發送到建立該視窗對象的線程的訊息佇列中。
訊息迴圈:從訊息佇列中檢索訊息的過程。
視窗對象:一個能夠接受和處理作業系統和使用者所施加的操作和行為的螢幕上可視的矩形地區,是基於繪圖物件方式的作業系統構造互動式程式的一種機制。
視窗類別:同一類視窗對象的程式描述,用WNDCLASS結構描述屬性,用視窗流程說明行為功能,建立一個視窗對象,首先必須成功地向作業系統註冊視窗類別。
視窗過程:視窗對象對事件和訊息的處理過程即視窗過程,又叫視窗函數;視窗對象的所有行為和功能都定義在視窗過程中。
控制代碼:Win32對象標識的通稱,具體表現為一個32位的無符號的整數值,通稱可用HANDLE 來標記。這裡Win32對象為諸如:核心對象(進程對象HProcess、線程對象HThread、檔案對象HFile、檔案對應物件、郵件槽對象、事件對象、訊號量對象、互斥對象)、GUI對象(視窗對象HWND、菜單對象HMENU、游標對象HCURSOR、表徵圖對象HICON等)、GDI對象HGDIOBJ(HDC、HPEN、HBRUSH、HFONT)等等等等,還有好多好多!
原文地址:http://old.blog.edu.cn/user2/lichangpo/archives/2006/1298419.shtml