描述
內容簡介
★★★【Windows API 基礎 x 入門講解 】★★★
本書針對沒有任何Windows API程式設計經驗的讀者,是一本非常通俗易懂的Windows程式設計書籍。全書參考了MSDN,正確性及時效性是無庸置疑的。
作者花了極大的心血,將整個10年的程式設計經驗毫無保留地分享給讀者,並幫助讀者學會Windows API中最重要的偵錯技術。
使用Windows API是撰寫程式的一種經典方式,目的就是替Windows程式提供優秀的性能、強大的功能和極佳的靈活性,產生的執行程式量相對比較小,甚至不需要外部程式庫就可以執行。
更重要的是,無論將來讀者用什麼程式語言來撰寫Windows程式,只要熟悉Windows API,就能對Windows的內部機制有更深刻、更獨到的理解,如果你是C/C++/C#的使用者,這本書一定會讓你有如魚得水的感覺。
大家都會用Windows,但只有在讀過本書之後,你在Windows中的每一個小動作,你心中都踏踏實實,清清楚楚知道自己在做什麼,是一本讓你功力大增,厚積薄發的好書。
【本書看點】 ✪ Windows程式開發Visual Studio基礎知識 ✪ Windows下各種字元編碼的介紹,讓程式不再有亂碼 ✪ 視窗程式基礎,客戶區、訊息迴圈、資料型態 ✪ GDI繪圖、文字、線條、圖形、座標、畫筆 ✪ 鍵盤與滑鼠,虛擬按鍵碼、擊鍵控制、滑鼠游標、滾輪控制 ✪ 計時器,系統時間、Windows時間、時鐘程式 ✪ 選單及其它資源、功能表列的增刪改查、選單及擴充選單的控制 ✪ 點陣圖、DDB、DIB、位元區塊傳送 ✪ 子視窗控制器,按鍵、列表、下拉清單、捲軸、IP,影像清單、工具列提示等 ✪ 對話方塊、模態及非模態、開啟儲存查詢替換、字型及顏色的選擇
【適合讀者】 ☛ 初學 Windows 程式設計的讀者 ☛ 學習 Windows 程式設計多年但仍有困惑的讀者 ☛ 其他任何愛好或需要學習 Windows API 程式設計的讀者
※ 本書附程式碼,可至深智官網下載:https://deepmind.com.tw/
|
作者
王端明
從2008年開始參與Windows API程式設計,精通組合語言、C/C++語言和Windows API程式設計,精通Windows環境下的桌面軟體開發和加密/解密。曾為客戶專門訂製開發32位元/64位元Windows桌面軟體,對加密/解密情有獨鍾,對VMProtect、Safengine等高增強式加密保護軟體的脫殼或記憶體更新有深入研究和獨到的見解,喜歡分析軟體安全性漏洞,曾在金山和360等網站發表過多篇防毒軟體漏洞相關分析文章。
|
目錄
第 1 章 基礎知識
1.1 Windows 的特色 1.2 程式語言的分類 1.3 安裝Visual Studio 開發工具 1.4 HelloWorld 程式 1.5 程式編譯過程 1.6 字元編碼ASCII、擴充ASCII、DBCS、Unicode 和ANS 1.7 字元和字串處理 1.8 結構資料對齊
第 2 章 Windows 視窗程式 2.1 認識Windows 視窗 2.2 第一個Windows 視窗程式 2.3 Windows 資料型態 2.4 函數名稱、變數名稱命名規則
第 3 章 GDI 繪圖 3.1 裝置環境(DC) 3.2 繪製文字 3.3 繪製直線和曲線 3.4 填充圖形 3.5 邏輯座標與裝置座標 3.6 擴充畫筆 3.7 區域 3.8 路徑 3.9 繪圖模式
第 4 章 鍵盤與滑鼠 4.1 鍵盤 4.2 滑鼠
第 5 章 計時器和時間 5.1 計時器 5.2 系統時間 5.3 Windows 時間 5.4 時鐘程式
第 6 章 選單和其他資源 6.1 選單和快速鍵 6.2 圖示 6.3 游標 6.4 字串表 6.5 程式版本資訊 6.6 自訂資源
第 7 章 點陣圖 7.1 DDB 7.2 位元區塊轉送 7.3 DIB 7.4 DDB 與DIB
第 8 章 子視窗控制項 8.1 按鈕類別 8.2 編輯控制項 8.3 列表框 8.4 下拉式清單方塊 8.5 捲軸控制項 8.6 靜態控制項 8.7 SysLink 控制項 8.8 全域熱鍵與特定執行緒熱鍵 8.9 IP 位址控制項 8.10 影像清單ImageList_Create函數 8.11 工具提示控制項 8.12 清單檢視 8.13 樹狀檢視 8.14 狀態列 8.15 工具列 8.16 進度指示器控制項 8.17 日期控制項 8.18 Tab 索引標籤控制項 8.19 動畫控制項
第 9 章 對話方塊 9.1 模態對話方塊 9.2 非模態對話方塊7 9.3 對話方塊程式的書寫 9.4 透過Photoshop 切片和自繪技術實現一個優雅的程式介面
第 10 章 通用對話方塊 10.1 開啟和儲存檔案 10.2 瀏覽資料夾與遍歷目錄 10.3 尋找和取代 10.4 選擇字型 10.5 選擇顏色 |
序
【前言】
2015 年7 月,Windows 10 作業系統正式發行,新版本的作業系統在UI介面、安全性和易用性等方面都有了大幅提升。64 位元作業系統已經普及,但傳統的Win32 API 也屬於Windows API。因為不管編譯為32 位元還是64 位元的應用程式,使用的都是相同的API,只不過是擴充了一些64 位元資料型態。目前Microsoft Windows 在作業系統市場中佔據相當大的百分比,讀者學習Windows 程式設計的需求非常迫切。但是遺憾的是,近年來可選的關於Windows API 的圖書較少。
使用Windows API 是撰寫程式的一種經典方式,這一方式為Windows 程式提供了優秀的性能、強大的功能和較好的靈活性,生成的執行程式量相對比較小,不需要外部程式庫就可以執行。更重要的是,無論將來讀者用什麼程式語言來撰寫Windows 程式,只要熟悉Windows API,就能對Windows 的內部機制有更深刻、更獨到的理解。
熱愛逆向研究的讀者都應該先學好Windows API 程式設計, 而初學Windows 程式設計的讀者可能會非常困惑。於是,在2018 年年初,我產生了一個想法:複習我這10 年的程式設計經驗,為Windows 開發人員寫一本深入淺出的符合市場需求的圖書。本來我計畫用一年的時間撰寫本書,可是沒想到一寫就是3 年!
本書針對沒有任何Windows API 程式設計經驗的讀者,因此儘量做到通俗易懂。為了確保本書內容的時效性,MSDN 是最主要的參考。我的初心就是把這10 年的程式設計經驗毫無保留地分享給讀者,並幫助讀者學會偵錯技術。另外,為了精簡篇幅,大部分程式的完整原始程式碼並沒有寫入書中。讀者透過本書可以全面掌握Windows 程式設計,對於沒有涉及的問題也可以透過使用MSDN 自行解決。
本書基於Windows 10 和Visual Studio 2019(VS 2019)撰寫,並提供了大量的範例程式。首先介紹學習Windows 程式設計必備的基礎知識,並對可能用到的字串處理函數做詳細講解。萬事開頭難。我從只有4 行程式的最簡單的HelloWorld 程式開始,然後介紹具有標準Windows 程式介面的HelloWindows程式。對於這兩個入門程式的每一行甚至每個單字我都進行深入介紹,講清楚其中的原理,讓後面的學習水到渠成。接著,我會介紹Windows 視窗程式、GDI繪圖、鍵盤與滑鼠以及計時器和時間等內容。然後,我會介紹一個程式介面所需的選單、圖示游標、點陣圖、子視窗控制項、對話方塊和其他資源等。最後,我會帶領讀者透過Photoshop 切片和自繪技術實現一個優雅的程式介面。
【目標讀者】 ▶ 初學 Windows 程式設計的讀者透過本書可以高效全面地掌握Windows程式設計。 ▶ 學習 Windows 程式設計多年但仍有困惑的讀者透過本書可以系統性地學習Windows程式設計的各方面。 ▶ 其他任何愛好或需要學習 Windows API 程式設計的讀者,透過本書可以更進一步地了解 Windows API 程式設計的基本技巧。
【讀者需要具備的基礎知識】 再閱讀本書之前,讀者必須熟悉C或C++語法。除此之外,不需要具備任何其他專業知識。
【致謝】 本書可以成功出版,得益於多位專業人士的共同努力。感謝家人的無條件支援,感謝微軟以及CSDN 的朋友、15PB 資訊安全教育創始人任曉琿、《Windows 核心程式設計》的作者陳銘霖、《Windows 環境下32 位元組合語言程式設計》的作者羅雲彬、微軟總部高級軟體工程師Tiger Sun 以及各軟體安全討論區的朋友對本書提出寶貴的建議以及認可和肯定。
由於我的能力和水準的限制,書中難免會存在疏漏,歡迎讀者批評指正。讀者可以透過Windows 中文網與我溝通。
|