許多初學者學習C語言很長時間,仍困惑「C語言究竟能做什麼」,誤以為它只是應付考試的工具,甚至聽聞「別學C了,直接學C++!」這種觀點極度片面。C++雖功能強大,但它是C的「超集」,沒有C的基礎,C++如無本之木。兩者非對立關係,而是互補:
學習Win32 C程式設計更能深入理解Windows內部機制與Win32 API本質。
軟體是運行在作業系統上的使用者程式。當前市場由Windows主導,若要軟體有市場,就必須為主流平台開發。DOS時代的TC 2.0雖是入門最佳環境(譚浩強等專家也推薦從DOS起步),但我們不能停留在「烏黑黑」的字元介面裡。時代變了,必須因時而變,學以致用。
別被TC綁住思維。C語言可在任何平台編程,只需找到該平台的開發工具與介面。Windows下C語言同樣大放異彩,能建立視窗、處理訊息、繪製圖形。打破「C只能做字元介面」的刻板印象,必有精彩發現。
「工欲善其事,必先利其器。」
DOS是單進程單執行緒、循序執行;Windows是多進程、多執行緒、事件驅動、訊息循環架構。理解這些核心差異是Windows程式設計的前提:
| 特性 | DOS | Windows |
|---|---|---|
| 進程模型 | 單進程 | 多進程 |
| 執行緒 | 單執行緒 | 多執行緒 |
| 執行流程 | 循序執行 | 事件驅動/訊息循環 |
| 硬體存取 | 直接操作 | 透過API/驅動程式 |
| 記憶體模型 | 實模式/分段 | 保護模式/平坦32位 |
被動讀書「看到尾巴忘了頭」極不高效。建議三階段法:
利用已有的DOS知識作為基線,重點記錄Windows與之「不同」之處,相同處可略過。這能快速建立系統差異認知,事半功倍。
WinMain、訊息循環、視窗程序、RegisterClass/CreateWindow、GDI繪圖、輸入處理。從DOS到Windows的轉型,不僅是工具更換,更是思維模式的升級。筆者也是過來人,深知初學艱辛。希望各位早日踏上Windows程式設計的光明大道,寫出屬於自己的優秀軟體!路漫漫其修遠兮,吾將上下而求索。