Pigz 的 Windows 移植:一个轻松的跨平台之旅

2025-06-23
Pigz 的 Windows 移植:一个轻松的跨平台之旅

Pigz,一个 Unix 风格的压缩工具,其 Windows 移植过程出乎意料地顺利。文章详细描述了移植过程中遇到的挑战,例如 pthreads 线程库和 dirent 函数库的差异,以及一些 C 库函数名称的细微差别。作者巧妙地利用现有的兼容性补丁和 Premake 构建系统解决了这些问题。Premake 的使用简化了 Visual Studio 项目文件的创建和维护,最终实现了 Pigz 在 Windows 系统上的成功运行。

阅读更多
开发

SumatraPDF开发者16年后放弃std::function,自造回调函数

2025-06-15
SumatraPDF开发者16年后放弃std::function,自造回调函数

SumatraPDF的开发者在16年的C++开发历程中,因为`std::function`和lambda表达式在调试崩溃时难以追踪,导致难以定位问题,最终放弃了它们。他选择了一个更小巧、更易于理解的自定义回调函数实现方案`Func0`和`Func1`。尽管功能不如`std::function`强大,但它在内存占用和编译速度上具有显著优势,并且更易于调试。这篇文章详细介绍了`Func0`和`Func1`的设计和实现细节,以及为什么开发者认为这种方法更适合SumatraPDF的项目需求。

阅读更多
开发 回调函数