微軟軟體開發技術二十年回顧之API
1.Windows GUI應用程式的基本結構。
其中,每一個程式都包含一個進入點、主視窗建立、一個訊息迴圈和主視窗撤消。此外,都有一個函式與主視窗過程相關聯,稱為視窗過程,它包含用於處理系統事件和應用事件(如鍵盤輸入、滑鼠移動和點選、定時器報警、選單選擇和按鈕點選)的程式碼。
在Windows程式設計初期,Windows程式設計師所能使用的程式設計工具唯有API(應用程式程式設計介面)函式,這些函式是Windows提供給應用程式與作業系統的介面,它們猶如“積木塊”一樣,可以搭建出各種介面豐富功能靈活的應用程式。所以,可以認為API函式是構築整個Windows框架的基石,在它的下面是Windows的作業系統核心,而它的上面則是各種功能的Windows應用程式。當時,因為缺乏良好的Windows程式設計平臺,程式設計師想編寫具有Windows風格的軟體,必須藉助API,API也因此而被賦予至高無上的地位。相應地,程式設計師還必須熟記一大堆常用的API函式,而且還得對Windows作業系統有深入的瞭解。
隨著軟體技術的不斷髮展,在Windows平臺上很快出現了很多優秀的視覺化程式設計環境(諸如VB、VC ++、DELPHI等),程式設計師可以採用“即見即所得”的程式設計方式來開發具有精美使用者介面和功能強大的應用程式。但實際上,要真正開發出更靈活、更實用、更具效率的應用程式,必然要涉及到直接的API函式呼叫;對於比較複雜和特殊的功能來說,使用類庫和控制元件往往難以實現,這時就需要採用API函式來實現。
【提示】關於鉤子技術
Windows作業系統是建立在事件驅動機制之上的,系統各部分之間的溝通也都是通過訊息的相互傳遞而實現的。但在通常情況下,應用程式只能處理來自程式內部的訊息或是從其他程式發過來的訊息,如果需要對在程式外傳遞的訊息進行攔截處理就必須採取一種被稱為HOOK(鉤子)的技術。鉤子是Windows作業系統中非常重要的一種系統介面,用它可以輕鬆截獲並處理在其他應用程式之間傳遞的訊息,並由此可以完成一些普通應用程式難以實現的特殊功能。鉤子的本質是一段用以處理系統訊息的程式,通過系統呼叫,將其掛入到系統。值得注意的是,鉤子技術成為許多種Windows軟體的核心技術,例如螢幕抓詞、垃圾郵件過濾、軟體介面高階定製等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-442871/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 2021年度總結 | 葡萄城軟體開發技術回顧(上)
- 2021年度總結 | 葡萄城軟體開發技術回顧(下)
- 開放思源 專注高效 HPE&msup軟體技術開放日回顧
- 2017 前端技術發展回顧前端
- 回顧2013軟體開發:JavaScript領風騷JavaScript
- 2006年Java開發技術回顧與展望Java
- 軟體開發技術問答
- 微軟釋出API及軟體開發工具包微軟API
- 8月第3周安全回顧微軟發8月補丁開源反毒軟體被收購微軟
- 關於軟體開發流程規範,有感於最近做技術顧問(一)
- 8月第3周安全回顧 微軟發8月補丁 開源反毒軟體被收購薦微軟
- Scrum敏捷軟體開發之技術實踐——測試驅動開發TDDScrum敏捷
- fir.im Weekly - 2016 移動開發技術大回顧移動開發
- SAP產品增強技術回顧
- 回顧&展望:防毒軟體的“前世今生”防毒
- 圓滿落幕!回顧 eBPF 技術的發展與挑戰eBPF
- 羅姆(ROHM)第4代:技術回顧
- 微軟防毒軟體Forefront技術不過關微軟防毒
- 一個 SAP 開發工程師十餘年的技術寫作之路回顧工程師
- 回顧 Linux 和開源技術 2014 的大起大落Linux
- 我是否適合學習軟體開發技術?
- 回顧2016年 | 掘金技術徵文
- 分散式資料庫技術論壇回顧分散式資料庫
- 我的2020回顧——技術篇
- 2016年 iOS 技術圈回顧iOS
- 2016年iOS技術圈回顧iOS
- 08第1周安全回顧微軟罕見只發2補丁惡意軟體數量驚人微軟
- HCDG天津站精彩回顧 | AI高效開發, ModelArts技術動手工作坊AI
- 看雪論壇—微軟 軟體安全技術交流會微軟
- 2007年軟體開發技術預測集錦-Java,軟體開發,AjaxJava
- 活動回顧丨飛天技術沙龍 Serverless + AI 專場(上海站)回顧 & PPT 下載ServerAI
- API還是微軟主推的技術嗎?API微軟
- PHP 回顧之 cookiePHPCookie
- Pi派幣挖礦系統開發軟體技術
- 雲算力礦機系統開發軟體技術
- 泰山眾籌智慧合約軟體開發技術方案
- 軟體開發中的資料庫測試技術資料庫
- 2006年軟體開發技術預測