Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows 進程與應用程式架構解析:進程邊界、子系統、入口點函數

編輯:XP 系統應用技巧

理解 Windows 進程模型是系統程式開發與偵錯基礎。本文從核心物件、位址空間、執行緒排程,到 GUI/CUI 兩類應用程式的子系統與入口點差異進行結構化說明。

進程核心組成

  • 核心物件:系統以控制結構管理進程,儲存統計資訊 (PID、CPU 時間、記憶體用量等)。
  • 虛擬位址空間:包含映像檔 (.exe)、DLL 程式碼/資料、動態配置堆疊/堆積、執行緒堆疊。每進程獨立 2GB/3GB (x86) 用戶空間。
  • 執行緒排程:一進程含多執行緒,CPU 以時間片輪流調度執行緒,而非進程。

應用程式兩大子系統

類型全稱連結器參數入口點函數介面
GUIGraphical User Interface/SUBSYSTEM:WINDOWSint WINAPI _tWinMain(HINSTANCE, HINSTANCE, PTSTR, int)視窗/訊息迴圈
CUIConsole User Interface/SUBSYSTEM:CONSOLEint _tmain(int argc, TCHAR* argv[], TCHAR* envp[])文字模式/標準輸入輸出

註:原文表格參數有誤,已依實際規格修正。OS 依 PE 標頭 Subsystem 欄位決定建立主控台或視窗站/桌面物件。

關鍵差異

  • GUI 程式啟動不附加主控台;CUI 程式自動連接主控台 (或繼承父進程主控台)。
  • GUI 入口點接收 hInstance、命令列字串、顯示狀態參數;CUI 入口點接收 argc/argv/envp 陣列。
  • 同一執行檔可透過連結器參數切換子系統,但程式碼需相容對應入口點簽章。

掌握進程隔離與子系統機制,有助於除錯跨進程通訊、DLL 載入順序、服務互動等進階議題。

Copyright © Windows教程網 All Rights Reserved