DirectShow Filter 開發全攻略:從環境配置到 COM 類別工廠、Pin 連接與資料流實作
前言 DirectShow 架構核心是 Filter (篩選器) 組件化處理多媒體串流。每個 Filter 是一個 COM 物件,透過 Pin (腳位) 連接形
SDK 視窗程式物件化封裝:以 C++ 面向對象技術重構 Win32 註冊/建立/訊息迴圈
動機 純 SDK 寫視窗程式需重複:WNDCLASSEX 註冊、CreateWindow、訊息迴圈、龐大 switch(msg) 分派。MFC/OWL/WTL
MFC 仿 Windows 畫圖板完整實作:繪圖、撤銷重做、縮放、工具箱、調色盤
專案簡介 完整複刻 Windows 畫圖板核心功能:自由筆刷、直線/矩形/橢圓、文字輸入、圖塊拖放、多級撤銷重做、畫面縮放、檔案讀存、Base64 圖片介面、工
黑白棋 (Othello) 網路對戰開發文檔:Winsock 同步架構與模組設計
專案概覽 基於單機黑白棋擴充為網路對戰版,採用 MFC 對話框架構構 + Winsock (wsock32.lib, mpr.lib) 實現雙進程同步對戰。核心
從崩潰地址定位源碼行號:MAP/COD 檔案進階除錯技法完整指南
前言 Release 版本崩潰無法直接偵錯時,若只有一個崩潰位址 (如 0x00401082),如何反推到具體源碼行?本文改進前人「僅用 MAP 檔」方法,引入
仿 QQ 懸掛視窗:全域滑鼠鉤子實現邊緣自動隱藏/展開
前言 QQ 經典功能:視窗停靠螢幕左/右/上邊緣時自動摺疊隱藏,滑鼠移至邊緣自動展開。關鍵在於捕獲視窗外部滑鼠移動,標準 WM_MOUSEMOVE/WM_NCM
動態捕獲視窗 DC 並即時顯示:BitBlt + 計時器實現遠端桌面預覽效果
前言 需在自家視窗中即時鏡像顯示另一個應用程式視窗畫面(如媒體播放器預覽、監控畫面)。本文核心技術:GetDC 取得來源視窗 DC → CreateCompat
調用 HHA_CompileHHP 編譯 CHM 專案:告別 hhc.exe 命令行的局限
為什麼不用 hhc.exe? 無編譯進度回饋。 無錯誤/警告即時日誌。 不支援含空格路徑 (需手動加引號處理)。 進程獨立,難以整合至 IDE/建構腳本。
Spy++ 核心原理與自製窗口探測器實戰:從子類化到全域鉤子
專案架構:對話框基礎 + 5 頁屬性頁 主對話框:探測器圖標、置頂/16進制選項、Tab Control (常規/樣式/類/窗口/消息)。 5 個 CProp
MSDN 說明庫整合指南:將 CHM 幫助檔無縫融入 Visual Studio 文檔系統
核心架構:Collection (.col) 與註冊檔 MSDN 庫以 Collection (集合) 形式組織 HTML Help (.chm) 檔案。兩個關
註冊表讀寫實戰:MFC 應用中修改用戶/公司名稱完整範例
註冊表基礎知識速覽 根鍵:HKEY_LOCAL_MACHINE (機器配置)、HKEY_CURRENT_USER (當前用戶)、HKEY_CLASSES_RO
CEdit 控制項透明化實戰:打造帶圖形背景的編輯框
核心難點:CEdit 繪製機制與重繪時機 CEdit 非單純 WM_PAINT 繪製,其重繪觸發點分散: 鍵盤/滑鼠輸入導致內容變更(EN_CHANGE 相關
串口實時接收短訊:AT+CNMI 指令詳解與主動通知機制實作
從輪詢到中斷:為什麼需要「實時」接收? 傳統 AT+CMGL 輪詢模式缺點明顯: 延遲不可控:取決於查詢間隔,訊息滯留於 ME(手機/模組)中。 效率低:無論
Visual C++ 實現全螢幕顯示:從繪圖曲線到 ESC 退出的完整實戰
核心思路:三步走佔領全螢幕 自訂視窗類,重寫繪圖邏輯(OnPaint/OnDraw)。 獲取螢幕尺寸:GetDeviceCaps(HORZRES/VERTRE
打造專屬對話框窗口類:解決 Spy++ 識別衝突與 Hook 精準定位
問題背景:MFC 對話框的「同名」困境 在使用 Spy++ 檢測基於對話框的 MFC 程式時,所有對話框的視窗類名均為 #32770 (Dialog)。這導致無
深入 CSocket 編程:阻塞與非阻塞模式全解析
前言 在 Windows 網路程式設計中,MFC 的 CSocket 類封裝了 Windows Sockets API,極大地簡化了網路通訊的開發難度。然而,要
Visual C++ COM 元件返回 ADO Recordset 給 ASP:正確實作避免記憶體洩漏與型別不匹配
ATL COM 元件若錯誤返回 _RecordsetPtr 給 ASP,易導致「物件已關閉操作不允許」、「型別不匹配」、「ASP 0115 外部物件錯誤」。本文
共享變數在 VC 與 GCC 編譯器下的不同宣告寫法
跨平台專案需在特定記憶體區段 (Section) 定義共享變數 (如進程間共享、啟動器傳遞參數)。MSVC 與 GCC/Clang 語法截然不同: MSVC