博客
KomuraSoft LLC 围绕网站建设、SEO、Google 广告投放、Windows 开发、既有资产利用与故障排查,分享可在实际工作中运用的思路。
全站 AI 搜索
搜索关键字会发送至 Cloudflare AI Search 以生成结果,请勿输入个人信息。
-
用 Media Foundation 从 MP4 的指定时刻提取静止图像的方法
本文整理用 Source Reader 从 MP4 中取出最接近指定时刻的帧,处理好 stride 与 RGB32 的第 4 个字节(alpha)之后保存为 PNG 的完整实现步骤。
-
Windows 应用程序开发的安全最低限度检查清单
面向 WPF / WinForms / WinUI / C++ / C# 的业务应用程序,以检查清单的形式梳理权限、签名、更新、机密信息、HTTPS、输入验证、DLL 加载、日志这些方面的基本要点。
-
.NET Generic Host 是什么 - DI、配置、日志的基础
本文从 DI、配置、日志、IHostedService、BackgroundService 的关系入手,整理 Generic Host 的作用,从实务角度总结它在什么地方有效、在什么地方又显得多余。
-
.NET Native AOT 是什么 - 与 JIT、trimming 的区别
从与 JIT、ReadyToRun、self-contained、single-file、trimming、source generator 的区别出发,梳理 Native AOT 究竟是什么,并以实务视角总结它适合的场景与吃力的场景。
-
COM / ActiveX / OCX 是什么 - 区别与关系一并梳理
从实务视角梳理什么是 COM、什么是 ActiveX、什么是 OCX,一直讲到三者的区别与关系、与 OLE 的关联、它们被用在哪里,以及现在应该怎么看待它们。
-
.NET 三种计时器的使用区分 - PeriodicTimer/Timer/DispatcherTimer
整理 PeriodicTimer / System.Threading.Timer / DispatcherTimer 的区别,以及在 async 处理、ThreadPool callback、WPF 的 UI 更新中该如何区分使用。
-
如何从 C/C++ 调用 C# Native AOT DLL
本文整理如何把 C# 类库通过 Native AOT 发布为原生 DLL,并通过 UnmanagedCallersOnly 的入口点让 C/C++ 调用它,从适用场景、实现模式到注意事项逐一梳理。
-
在桌面应用中使用 .NET Generic Host 与 BackgroundService 的理由
本文整理在 Windows 工具或常驻应用中,如何使用 Generic Host 与 BackgroundService 来梳理启动、定期处理、退出处理、日志、配置与 DI。
-
ActiveX / OCX 现在该如何处理 - 保留、封装、替换的判断表
本文整理发现 ActiveX / OCX 时应该选择保留、封装还是替换,涵盖 32bit / 64bit、注册、浏览器依赖、供应商维护等因素。
-
用一张图整理 WPF/WinForms 的 async 与 UI 线程
本文整理 WPF / WinForms 中 await 之后的返回位置、Dispatcher / Invoke、ConfigureAwait(false)、.Result / .Wait() 等常见的卡点。
-
用 Application Verifier 搭建 Windows 异常路径测试基础设施
梳理 Application Verifier 是什么,并结合用 Handles、Heaps、Low Resource Simulation、!htrace 搭建 Windows 异常路径测试基础设施的做法一起说明。
-
工业相机长期运行崩溃调查 - handle 泄漏篇
本文以工业相机控制应用长时间运行后突然崩溃的实际案例,从 handle 泄漏的排查方法与日志设计的角度,整理 Windows 应用长时间运行后崩溃时的排查思路。
-
TCP 重传导致工业相机通信中断的原因与排查
本文整理当 TCP 重传导致工业相机通信中断数秒时的排查方法,结合丢包、RTO、RFC1323 时间戳、Wireshark 确认要点一并说明。
-
FileSystemWatcher 实务指南:应对遗漏通知与重复通知
本文从遗漏通知、重复通知、完成判定的陷阱、重新扫描、原子式 claim、idempotency(幂等性)等角度,整理 FileSystemWatcher 的使用方法与注意事项。
-
Media Foundation 入门:用 COM 视角理解 API
本文按照最先需要掌握的顺序,结合 COM、HRESULT、IMFSourceReader、MFT 等 Windows 媒体 API 的基础术语,整理 Media Foundation 到底是什么。
-
C# async/await 实战判断表:Task.Run 与 ConfigureAwait 怎么选
本文整理 C# async/await 的最佳实践,并附上 I/O 等待、CPU 计算、Task.Run、ConfigureAwait(false)、fire-and-forget 的判断表。
-
在普通 Windows 上尽量做到软实时的实践指南
本文整理在普通 Windows 上让周期处理与低延迟处理保持稳定的思路,从定时器精度、线程优先级、电源设置和监测方法等角度展开说明。
-
文件集成互斥控制基础知识 - 文件锁与原子 claim 的最佳实践
本文从文件锁、原子 claim、temp -> rename、idempotency(幂等性)等角度整理文件集成的互斥控制,并总结在共享文件夹集成中避免出问题的设计方法。
-
从 C# 调用原生 DLL:C++/CLI 包装器 vs P/Invoke
本文从所有权、异常、C++ 类型、回调等角度,区分在 C# 中使用原生 DLL 时 P/Invoke 已经够用的场景与 C++/CLI 包装器更有效的场景,并整理插入一层薄包装的架构所带来的优点。
-
HCP 图表与 MakingHCPChartSkill 入门
本文说明什么是 HCP 图表,并整理 MakingHCPChartSkill 将 HCP-DSL 转换为决定性 SVG 的流程、读法与使用方法。
-
COM STA/MTA 基础 - 线程模型与避免 Hang 的思路
本文梳理 COM STA/MTA 的基础知识,涵盖 Apartment Model、UI 线程、消息循环、封送处理,直到避免 Hang 的思路。
-
32 位应用调用 64 位 DLL 的 COM 桥接实例
本文整理当 32 位应用无法直接调用 64 位 DLL 时,通过 COM 桥接进行集成的思路,并结合 Windows 的限制、架构构成与处理流程加以说明。
-
什么是 COM - 为什么 Windows COM 的设计至今依然优美
本文从 Windows COM 的接口设计、IUnknown、GUID、二进制兼容性等角度整理 COM 是什么,并说明它至今依然适用的原因。
-
技术博客开设通知 - 开始运营 Windows / C# / COM 开发博客
小村软件有限公司 技术博客开设通知。今后将围绕 Windows 开发、C# / .NET、COM、设计、开发工具等主题,持续发布相关技术信息。