Win32程式設計技術
//2002/2/21 酷小毅於永和 (1).Win32的記憶體管理 各位若有經過Win31時代,玩過Win31也就是Win16的應用程式應該會發現,在win16下的應用程式共用相同的記憶體位址空間,在Win31下所有被執行的應用程式(Process)他們會存取到一塊由Windows所提供的一塊記憶體空間,也就是說應用程式可能會不小心存取到被其他應用程式所使用的記憶體位址,嚴重時甚至造成系統死當.而在Win32下Windows會載入一種稱為保護模式(不是win9x當機時進去的保護模式),在這個模式下會由Windows來掌控所有的 應用程式 Process, Thread,所有的應用程式訊息,使用者所產生的訊息包括鍵盤滑鼠等訊息,都必須透過Windows來達成,包括應用程式之間要存取另一個應用程式的資料或存取CMOS/BIOS資訊都必須透過Windows來達成,所以Windows當然回提供一系列windows的介面來完成這些事,這個介面就是Win32 API(Application Programming Inteerface). (2).Event driven事件驅動概念 Windows是一個充滿訊息的環境,在Windows下不斷的都有訊息流動,有時是Windows的訊息有時為System的訊息,有時是User的訊息,給應用程式的訊息經由應用程式轉換成事件,在交由應用程式相對應的事件處理常式來處裡該事件,有些則可能是某應用程式Send給其他應用程式的訊息,有些是使用者透過鍵盤滑鼠所產生的訊息,若將訊息分類則可分為:(1)Windows message (2) Application message. (3)User message.等,不過若對應用程式而言訊息就是訊息沒什麼不同,應用程式通常會有如下的一個while迴圈來接收並指派訊息給對應的處裡常式處裡 while(GetMessage(&Msg, null, null, null)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } 在Windows下每一個視窗裡都會有處裡這些訊息的處裡函式來處裡執行相對應的動作,Windows...