Windows 系列 -- 线程宝藏 简介两个 part:宝藏(Windows),备忘(标准库)。 挖宝可提醒 IO 的产物123// read fileReadFileEx(hFile, ..., APCCallback); // 线程 A 发起异步请求, 并立即返回SleepEx(INFINITE, TRUE); // APCCallback 会在线程 A 中处理 这就是 Windows 提供的异步 IO 操作之一,即: 可提醒 2025-10-13 Windows
cUI 系列 -- 窗口绘制 一、背景任何 UI 框架的基础能力:显示一幅 “图”。这幅 “图” 的可能来源:静态图片, 动画帧,解码后的视频帧,亦或是 OSR 模式下 CEF3 渲染进程输出的页面帧等。 二、关键技术解码这里给出可选项: WIC: 微软提供的图像编解码框架,支持 BMP, JPEG,PNG, GIF, TIFF, ICO 等; Bitmap (C#): 基于 WIC。但是,仅支持解析 GIF 的第一帧。 s 2025-10-12 cUI
cUI 系列 -- 任务栏托盘 一、应用场景常规的桌面端后台应用程序:没有通俗意义上的 UI 线程。此时,它需要一个任务栏图标。 二、客户端构成鉴于系列首篇,额外插入该环节。 物理载体:窗口,比如:windows 中的 win32 窗口。 逻辑载体:“UI 线程” 和它的消息队列,用于维护或者共享当前的输入状态,比如:键盘状态,焦点窗口。 消息循环:用于处理属于 “UI 线程” 的所有消息。 三、问答鉴于系列首篇,额外插入该 2025-10-11 cUI
cUI 系列 -- 规划 一、简介 cUI 将会是一款基于 win32 实现的 UI 框架。力求精简,即:最少依赖,最小包体体积。 二、规划 任务栏托盘桌面客户端的基础能力,包括:任务栏托盘图标,托盘右键菜单。 窗口绘制桌面客户端的基础能力,包括:位图(bmp, png, jpg),矢量图(svg),动图(gif, webp, lottie)。 桌面通知桌面客户端的特殊能力。监于过于通用,那就把 windows SDK 的 2025-10-09 cUI
OpenGL 系列 -- 渲染性能优化随记 张三丰:“无忌,我教你的还记得多少?”张无忌:“回太师傅,我只记得一大半。”…张三丰:“那现在呢?”张无忌:“已经剩下一小半了。”…张三丰:“那现在呢?”张无忌:“我已经把所有的全忘记了。” 前置知识科普部分对相关概念一带而过。但对新同学至关重要 – 避免在庞杂的书面知识上浪费时间。技术选型部分对相关技术仅给出当前考量 – 方向是对的,剩下的就是工作量。技术细节部分对相关技术细节的设计作详细阐述 2025-02-15 OpenGL
Video 系列 -- 性能优化方案调研 整体方案思路vlc调研vlc组件支持两种视频播放模式:渲染至窗口,渲染至图片。 渲染至窗口: 对于windows原生开发来说,《渲染至窗口》的整体流程更简洁。同时,也丧失了一定的灵活性。比如:视频帧的后处理。 对于qt开发来说,《渲染至窗口》需要获取qt空间的窗口句柄winId。但是,winId会导致窗口继承链中的事件处理中断。 渲染至图片: 相对比较灵活,通用的方式,它不受具体开发框架的限 2025-01-11 Video
【杂项】Windows 异形窗体 一、背景桌面客户端非规则窗体实现。同时,需要保留窗口的缩放、鼠标穿透、跨屏拖放等交互效果。 二、技术点技术点1:异形窗体使用透明控件扩充主窗口四周,以达到不规则图形超出客户区而不被裁剪的目的。同时,能保证窗口不受因缩放造成的抖动或闪烁。 技术点2:鼠标穿透至桌面鼠标穿透可借助透明区域裁剪操作。其中,区域计算涉及布尔运算,图片掩码等图形学操作。 技术点3: 窗体缩放 窗体样式: WS_OVERLAP 2024-09-17 Windows
【杂项】Aria2 - 基础应用(持续更新) 1、Aria 基础设施Aria2 下载器开源的 Aria2 下载器支持多种 IPC 通信模式: JSON-RPC, XML-RPC。 IPC 机制基于 Aria2 提供的 RPC 机制, 我们选择了 xmlrpc 作为进程间通信方式。xmlrpc 开源库多种多样, 比如:libmaia, timxmlrpc。 libmaia: https://github.com/wiedi/libmaia一款 2024-09-16 C++
Windows 系列 -- 设备IO 简介本篇索引大致分为以下内容:设备、接口、同步设备I/O、异步设备I/O。 该篇非入门,可止步。 汇总本节以图示形式列出,供随时索引。更详细节可参考 Windows via C/C++ (第五版)。 2024-04-07 Windows
Windows 系列 -- 规划 一、简介该系列将作为 Windows via C/C++ (第五版)的索引,大致可分为以下几类: Windows 内核对象:重中之重。 Windows 开发通识: 一些常识,比如: 进程,线程,设备等。 Windows 技术设施: 一些便捷接口,比如:可提醒 IO 提供的 QueueForAPC 机制。 二、规划 设备IO Windows 消息 … 三、体会Windows Job: 2024-04-07 Windows