基於 OHCI 的 USB 主機開發:批量端點寫入資料(Mass Storage 協議)
本文記錄 OHCI 主機控制器驅動中,針對 USB 大容量儲存裝置(U 盤)的批量寫入實作。與讀取類似,差別在於資料方向與 CBW/CSW 封包順序。 協議封
【編程好習慣】善用語言特性:以 sizeof 與靜態初始化取代運行期計算
深度理解程式語言特性,不僅能精簡代碼,更能將計算前移至編譯期,消除運行期開銷。本文展示兩個經典案例:sizeof 取代 strlen、靜態初始化取代 memse
【編程好習慣】資源釋放鐵律:嚴格遵循「分配逆序」原則
軟體模組的核心往往是資源的「獲取 → 使用 → 釋放」生命週期。獲取時有順序,釋放時必須嚴格遵循逆序。這不僅是良好習慣,更是避免崩潰、死鎖、資源洩漏的關鍵防線。
【Linux 嵌入式實戰】Madplay 移植到 ARM 開發板完整步驟
為測試開發板音訊播放,將命令列 MP3 播放器 Madplay 及其依賴庫(libmad、libid3tag、zlib)交叉編譯移植至 ARM Linux 平台
【編程好習慣】goto 語句的正當防衛:錯誤處理與資源釋放的最佳拍檔
goto 在 C/C++ 界「臭名昭著」,許多編碼規範甚至明令禁止。但 Linux 核心(2.6.21)使用 20,333 次、VxWorks 6.2 用 9,
Qt 學習之路 (37):關聯式容器 QMap 與 QHash 深度解析
Qt 容器類別中,關聯式容器 儲存的是鍵值對,對應數學上的映射關係。Qt 提供兩大核心實作:QMap<K, T>(有序、跳表實作)與 QHash&l
使用 dumpbin 查看 C++ DLL 的 __stdcall 裝飾名稱
當使用 Visual C++ 建置的 DLL 需供其他語言(如 VB、C#、Python)呼叫時,函數必須採用 __stdcall 呼叫慣例(Windows A
P2PSim 核心架構解析(四):Topology 與 Network 互動機制
承接前文,taskmain 的第三步驟呼叫 Topology::parse(topology_file) 解析拓撲檔案並啟動 Network 物件。本文深入剖析
【SDL 開發入門】Visual C++ 6.0 環境建置完整指南
SDL (Simple DirectMedia Layer) 是廣受歡迎的跨平台多媒體庫。本文記錄在 Windows XP SP3 上,使用 Visual C+
【編程好習慣】善用靜態全域與區域陣列:簡化資源管理、提升穩定性
在 C/C++ 開發中,「全域變數」常被視為洪水猛獸,但若能善用靜態全域陣列或靜態區域陣列,不僅能簡化程式碼,更能避免動態記憶體分配帶來的風險。關鍵在於:擁有該
Qt 學習之路 (36):容器類迭代器與隱式資料共享深度解析
Qt 容器類 (QList、QVector、QLinkedList 等) 提供兩種迭代器風格:Java 風格 (易用) 與 STL 風格 (通用算法相容)。並透
Qt 學習之路 (34):國際化進階技巧 (下)
承上篇完成基本翻譯流程,本文深入 tr() 進階用法、非 QObject 環境翻譯、複數形式處理、延遲標記巨集,以及 Qt 內建元件的翻譯載入。 tr() 完
gettext 實作軟體本地化 (L10N) 完整範例教學
本文整理自《Free/Open Source Software Guide to Localization》第 10 章範例,在 Red Hat 5.3 環境實
Qt 學習之路 (33):國際化實戰指南 (上)
2D 繪圖系列告一段落,轉向開發者常問的國際化 (i18n) 主題。Qt 提供多種國際化方案,推薦使用 tr() 函式搭配 .ts/.qm 翻譯檔流程,避免硬編
Qt 學習之路 (32):使用 Graphics View 實作簡易畫板
在前幾篇文章中我們詳細介紹了 Graphics View 架構的優勢,但光說不練假把式。這次我們將把先前的畫板範例改用 Graphics View 重寫,讓大家
Qt 實戰專案:基於 QWidget 的簡易畫板完整實作 (直線/矩形/多形狀管理)
理論學習到此告一段落,讓我們串聯前幾章知識,打造一個功能完整的**簡易畫板程式**。支援工具列切換直線/矩形、滑鼠拖曳即時預覽、歷史圖形保留重繪、狀態欄提示,展
Qt Graphics View 框架核心架構:場景-視圖模式與百萬物件即時渲染
Qt 繪圖系統的壓軸登場——**Graphics View Framework**。它採用 Item-Based 架構與 Model-View 設計,支援百萬級
Qt 繪圖進階:反鋸齒 (Antialiasing) 原理、啟用時機與效能權衡
反鋸齒是 2D 繪圖品質的關鍵技術。Qt 預設關閉反鋸齒以追求效能,本文深入解析其原理、啟用方式、適用場景與不適用場景,助你做出正確取捨。 鋸齒產生與反鋸齒原