C++ 设计模式实战:RAII、观察者、工厂

用现代 C++(C++17/20)实现三种高频设计模式:RAII 资源管理、观察者模式事件系统、工厂模式插件架构。每种模式给出问题场景、实现代码和真实工程案例。

#cpp#设计模式#c++17

数据结构基础:从数组到红黑树

系统梳理常用数据结构的核心原理、时间复杂度和适用场景。数组、链表、栈、队列、哈希表、二叉树、堆、图,每种结构附实现要点和 C++ 代码片段。

#数据结构#算法#cpp

二分查找:永远写不对?记住这个模板

彻底搞清楚二分查找的边界问题:闭区间和左闭右开两套模板、三道经典 LeetCode 题目完整 C++ 实现,以及二分答案的进阶思路。

#算法#二分查找#leetcode

滑动窗口算法:从暴力到 O(n) 的思维跃迁

系统讲解滑动窗口算法的核心模板、适用题型,配合三道经典 LeetCode 题目的完整 C++ 实现,彻底理解双指针收缩思路。

#算法#滑动窗口#leetcode

HID 设备热插拔检测:从 udev 到 node-hid

在 Linux 上用 node-hid + usb 库实现可靠的 USB HID 设备热插拔检测,踩坑记录

#cpp#hid#linux

CEF LNK2038:解决 _ITERATOR_DEBUG_LEVEL 不匹配错误

分析 CEF(Chromium Embedded Framework)集成时出现的 LNK2038 _ITERATOR_DEBUG_LEVEL 链接错误,从根本原因到解决方案的完整指南。

#cpp#CEF#Visual Studio

C# 通过 SendMessage 向 C++ 窗口发送消息与字符串

使用 P/Invoke 调用 user32.dll 的 SendMessage,从 C# 发送自定义 WM_USER 消息及字符串指针给 C++ 原生窗口,并在 C++ 侧正确接收和转换。

#C##cpp#windows

ATL 字符串转换:CW2A 与 CA2W 完全指南

详解 ATL 宏 CW2A/CA2W 在 Unicode 与 ANSI 之间的字符串转换用法、头文件依赖、USES_CONVERSION 宏的作用与常见陷阱。

#cpp#windows#ATL

C++ 现代随机数生成:用 mt19937 彻底告别 rand()

深入讲解为什么 rand() 不够用,以及如何用 C++11 的 <random> 库正确生成高质量随机数,涵盖 mt19937、各种分布和线程安全。

#cpp#c++11#random

将 EXE 和 DLL 打包成单一可执行文件

介绍两种将 exe 和依赖 dll 打包成单文件的方案:Enigma Virtual Box 和 WinRAR 自解压,适合发布 Windows 桌面程序时简化分发流程。

#windows#cpp#工具

Windows PostMessage 跨线程传递 std::vector 指针

通过 PostMessage 在 Windows 消息队列中传递 std::vector 指针,使用 reinterpret_cast 将指针装入 LPARAM,并在接收方正确释放内存。

#cpp#windows#WinAPI

C++ 实现程序开机自启动:注册表方式详解

通过操作 Windows 注册表 Run 键实现程序开机自启动,包括 HKCU 与 HKLM 区别、完整封装代码、工作目录问题和 UAC 权限处理。

#windows#cpp#registry

MFC 中 CString 与 WPARAM 之间的转换

详解 MFC 消息传递中 CString 无法直接强转为 WPARAM 的原因,以及两种正确的转换方案,并介绍结构体指针传递的正确姿势。

#mfc#cpp#windows

正确编译 Duilib 静态库:避免 ATL 依赖和链接错误

详解如何用 DuiLib_Static.vcxproj 编译 Duilib 静态库,解决 VARIANT 未定义、Unicode 配置不匹配和 ATL 依赖等常见问题。

#cpp#duilib#windows

MFC 界面自适应不同分辨率

MFC 对话框程序实现控件和字体随分辨率自动缩放的完整方案,附 DPI Awareness 配置说明

#mfc#cpp#windows

MFC 无标题栏窗口客户区拖动:三种方法对比

MFC 对话框去掉标题栏后如何实现拖动移动窗口,三种方案完整实现与适用场景分析

#mfc#cpp#windows