1. BZ2 格式无损压缩:提供高压缩比的数据封装,基于 Burrows-Wheeler 变换、Move-To-Front 编码和 Huffman 编码。适用于文本、日志、安装资源和备份数据的压缩。
2. 流式压缩与解压:导出 BZ2_bzCompressInit、BZ2_bzCompress、BZ2_bzCompressEnd、BZ2_bzDecompressInit、BZ2_bzDecompress、BZ2_bzDecompressEnd 等接口,支持分块、连续、低内存的流式处理。
3. 文件与缓冲区封装:提供 BZ2_bzReadOpen、BZ2_bzRead、BZ2_bzReadClose、BZ2_bzWriteOpen、BZ2_bzWrite、BZ2_bzWriteClose 等函数,便于直接对文件句柄或内存缓冲区读写 BZ2 数据。
4. 错误码与状态管理:通过 BZ_OK、BZ_STREAM_END、BZ_RUN_OK、BZ_FLUSH_OK、BZ_FINISH_OK、BZ_CONFIG_ERROR、BZ_DATA_ERROR 等返回值报告压缩、解压、参数和内存状态。
5. 跨程序复用:多个进程可以动态加载该 DLL,避免重复编译 libbz2,降低体积并统一压缩算法行为。
程序无法启动:依赖该 DLL 的 EXE 会弹出“找不到 bzip2.dll”或“无法继续执行代码,因为系统找不到指定文件”,进程加载阶段直接失败。
压缩解压功能失效:安装程序无法解包、备份软件无法恢复、压缩工具无法读取或生成 BZ2 文件,相关按钮或命令行调用报错。
资源加载中断:游戏、补丁器、更新器若使用 BZ2 封装资源,可能在启动、更新或加载关卡时崩溃,并产生 0xc000007b 或模块缺失类错误。
数据链路异常:自动化脚本、Python 扩展、CI 工具或服务进程调用 bz2 模块时可能抛出 OSError、ImportError 或 WinError 126,导致任务中止。
常见原因是 DLL 未随程序安装、被杀毒软件隔离、32 位与 64 位版本混用、VC++ 运行库缺失或系统目录权限异常。处理时应优先重新安装对应软件,确认 bzip2.dll 与主程序架构一致,并把它放在 EXE 同目录或正确的系统搜索路径中。