# commonResourceExtractor **Repository Path**: h128/common-resource-extractor ## Basic Information - **Project Name**: commonResourceExtractor - **Description**: 基于dll插件技术的通用游戏资源解包器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-23 - **Last Updated**: 2025-12-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: 解包 ## README # commonResourceExtractor 参考了痴汉公贼的crass++解包器程序设计: https://gitee.com/h128/Crass-source ## 编译 1. 安装mingw 2. 安装xmake 3. xmake build ## 使用 ``` "commonResourceExtractor.exe [参数]" "commonResourceExtractor.exe --list 显示所有已安装插件信息" "commonResourceExtractor.exe --version 显示版本信息" "commonResourceExtractor.exe -V 显示版本信息" "commonResourceExtractor.exe -f 指定要转换的单个文件" "commonResourceExtractor.exe -p 指定要批量转换的目录" "commonResourceExtractor.exe -o 指定输出的目录(默认output)" "commonResourceExtractor.exe --verbose是否开启详细输出" "commonResourceExtractor.exe -f [fileName]" "commonResourceExtractor.exe -f [fileName] -o [outputDirectory]" "commonResourceExtractor.exe -p [dirName] -o [outputDirectory] --verbose" ``` ## 关于dll插件的开发 1. 参考plugin/MYDAT/MYDAT.cpp ```c++ #include "../../include/plugin.h" #include "../../include/plugin_error.h" // 必须实现的函数 extern "C" __declspec(dllexport) void show_plugin_info(struct plugin_information *info); extern "C" __declspec(dllexport) int register_plugin(struct plugin_register_callback *callback); /* 封包处理回调函数集合 */ static plugin_ext_operation; // 封包处理回调函数集合原型 这些函数必须实现,或者未实现的使用NULL参数填充 struct plugin_ext_operation { bool (*match)(std::string& fileName); /* 是否支持该封包 */ int (*extract_directory)(std::string dirName); /* 提取directory数据 */ int (*extract_resource)(std::string package_path,std::string output_dir); /* 提取资源文件数据 */ int (*save_resource)(const char *fileName); /* 保存资源数据 */ void (*release)(std::ifstream fin); /* 释放相关资源 */ }; ```