M2. miniLZO文件压缩

2025-04-24

2.1设置**的文件尺寸

函数名

void SetMaxFileVolume ( unsigned long dwSize )

头文件

API-WiMiFile.h

静态库

WiMiFile.lib

动态库

WiMiFile.dll


形式

说明

参数一

Unsigned long dwSize

压缩文件和解压缩文件的**总尺寸,单位字节

返回值


2.2将文件以miniLZO协议压缩

函数名

unsigned long LZOCompress_File ( char * pInFile, char * pOutFile, unsigned long * pSize )

头文件

API-WiMiFile.h

静态库

WiMiFile.lib

动态库

WiMiFile.dll


形式

说明

参数一

char * pInFile

需要压缩的原始文件名称

参数二

char * pOutFile

指向一个已分配好实体内存空间的内存块,用于存储压缩后的文件名,文件的尾缀是mLZO

参数三

unsigned long * pSize

指向一个已分配好实体内存空间的4字节长整型变量,用于保存转换后文件名的有效长度,需要初始化为参数二“pOutFile”的实体内存空间的大小

返回值

0X00=操作成功

0X01=源文件名无效

0X02=打开源文件失败

0X05=打开mLZO文件失败,可能是用户操作权限不够

0X06= mLZO初始化失败

0X07= mLZO压缩失败

0X08= mLZO解压缩失败

0X09= mLZO解压缩尺寸和源文件不匹配

0X0A= mLZO解压缩内容和源文件不匹配


2.3测试例子程序


#include <stdio.h>
#include "API-WiMiFile.h"
int main( int argc, char* argv[] )
{
   char buffer[0XFF];
   unsigned long dwSize;
   unsigned long dwRetVal;
   // The default input buffer size
   dwSize = sizeof( buffer );
   // The max file volume
   SetMaxFileVolume( 12000UL );
   // miniLZO the source file   
   dwRetVal = LZOCompress_File( "D:\\BMP\\13.bwrg", buffer, &dwSize );
   //dwRetVal = LZOCompress_File( "D:\\BMP\\5B.bmp", buffer, &dwSize );
   // Validate the operation status
   if ( dwRetVal != ERROR_SUCCESS )
   {
      printf( "Error!\r\nCode=0X%08lX\r\n\r\n", dwRetVal );
      return 0X00;
   }
   // The output file name and size
   printf( "Success!\r\nOutput File=%s,File Name Length=%lu\r\n\r\n", buffer, dwSize );
   
   // Exit the main program
   return 0X01;
}



2.4 测试程序说明


该程序首先设置**的压缩文件的尺寸为12K字节,然后对文件进行miniLZO压缩,如果失败,就打印出失败代码,如果成功,就打印出压缩后的文件名称以及文件名称的长度。


阅读2
分享
写下您的评论吧