▸ C++ 设计模式实战:RAII、观察者、工厂
用现代 C++(C++17/20)实现三种高频设计模式:RAII 资源管理、观察者模式事件系统、工厂模式插件架构。每种模式给出问题场景、实现代码和真实工程案例。
▸ 数据结构基础:从数组到红黑树
系统梳理常用数据结构的核心原理、时间复杂度和适用场景。数组、链表、栈、队列、哈希表、二叉树、堆、图,每种结构附实现要点和 C++ 代码片段。
▸ 二分查找:永远写不对?记住这个模板
彻底搞清楚二分查找的边界问题:闭区间和左闭右开两套模板、三道经典 LeetCode 题目完整 C++ 实现,以及二分答案的进阶思路。
▸ 滑动窗口算法:从暴力到 O(n) 的思维跃迁
系统讲解滑动窗口算法的核心模板、适用题型,配合三道经典 LeetCode 题目的完整 C++ 实现,彻底理解双指针收缩思路。
▸ HID 设备热插拔检测:从 udev 到 node-hid
在 Linux 上用 node-hid + usb 库实现可靠的 USB HID 设备热插拔检测,踩坑记录
▸ CEF LNK2038:解决 _ITERATOR_DEBUG_LEVEL 不匹配错误
分析 CEF(Chromium Embedded Framework)集成时出现的 LNK2038 _ITERATOR_DEBUG_LEVEL 链接错误,从根本原因到解决方案的完整指南。
▸ C# 通过 SendMessage 向 C++ 窗口发送消息与字符串
使用 P/Invoke 调用 user32.dll 的 SendMessage,从 C# 发送自定义 WM_USER 消息及字符串指针给 C++ 原生窗口,并在 C++ 侧正确接收和转换。
▸ ATL 字符串转换:CW2A 与 CA2W 完全指南
详解 ATL 宏 CW2A/CA2W 在 Unicode 与 ANSI 之间的字符串转换用法、头文件依赖、USES_CONVERSION 宏的作用与常见陷阱。
▸ C++ 现代随机数生成:用 mt19937 彻底告别 rand()
深入讲解为什么 rand() 不够用,以及如何用 C++11 的 <random> 库正确生成高质量随机数,涵盖 mt19937、各种分布和线程安全。
▸ 将 EXE 和 DLL 打包成单一可执行文件
介绍两种将 exe 和依赖 dll 打包成单文件的方案:Enigma Virtual Box 和 WinRAR 自解压,适合发布 Windows 桌面程序时简化分发流程。
▸ Windows PostMessage 跨线程传递 std::vector 指针
通过 PostMessage 在 Windows 消息队列中传递 std::vector 指针,使用 reinterpret_cast 将指针装入 LPARAM,并在接收方正确释放内存。
▸ C++ 实现程序开机自启动:注册表方式详解
通过操作 Windows 注册表 Run 键实现程序开机自启动,包括 HKCU 与 HKLM 区别、完整封装代码、工作目录问题和 UAC 权限处理。
▸ MFC 中 CString 与 WPARAM 之间的转换
详解 MFC 消息传递中 CString 无法直接强转为 WPARAM 的原因,以及两种正确的转换方案,并介绍结构体指针传递的正确姿势。
▸ 正确编译 Duilib 静态库:避免 ATL 依赖和链接错误
详解如何用 DuiLib_Static.vcxproj 编译 Duilib 静态库,解决 VARIANT 未定义、Unicode 配置不匹配和 ATL 依赖等常见问题。
▸ MFC 界面自适应不同分辨率
MFC 对话框程序实现控件和字体随分辨率自动缩放的完整方案,附 DPI Awareness 配置说明
▸ MFC 无标题栏窗口客户区拖动:三种方法对比
MFC 对话框去掉标题栏后如何实现拖动移动窗口,三种方案完整实现与适用场景分析