Skip to content

InnovationLeap/SMWGzip_Native

Repository files navigation

SMWGzip Native

SMWP(Super Mario Worker Project)专用的 GZip 压缩/解压缩动态链接库(DLL),采用纯 C 编写,基于 miniz

这是原 .NET 版 SMWGzip(C#,依赖 .NET Framework)的原生实现替代版本,不依赖 .NET 运行时,可直接被 GameMaker 8.x(32 位)通过 external_define 加载调用。

导出函数

所有函数使用 __stdcall 调用约定,返回 double(GameMaker real 类型):

函数 说明 返回值
gz_check(filename) 检查文件是否为 Gzip 格式(判断魔数 1F 8B 是返回 1,否返回 0
gz_decompress(src, dst) 将 Gzip 文件 src 解压到 dst 成功返回 0,失败返回负数错误码
gz_compress(src, dst) 将文件 src 压缩为 Gzip 格式写入 dst 成功返回 0,失败返回负数错误码
gz_selftest() 内置自检(压缩再解压比对) 成功返回 0,失败返回负数错误码

构建

需要 Visual Studio 2022(含 C++ 桌面开发工具集)。目标为 32 位(GameMaker 8.x 是 32 位程序)。

build.bat

生成 SMWGzip.dll

在 GameMaker 中调用

external_define("SMWGzip.dll", "gz_decompress", dll_stdcall, ty_real, 2, ty_string, ty_string);

License

  • 封装代码(SMWGzip.cbuild.bat)采用 MIT 许可证,见 LICENSE
  • 内置的 miniz 库为公有领域(Unlicense)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages