|
- XC_API void* WINAPI XC_LoadXML_Zip(wchar_t *pZipFileName,wchar_t *pImageName,wchar_t *pPassword);
- XC_API void WINAPI XC_UnLoadXML_Zip(void* lpData);
复制代码- XC_API void WINAPI XC_UnLoadXML_Zip(void* lpData)
- {
- free(lpData);
- }
- void* WINAPI XC_LoadXML_Zip(wchar_t *pZipFileName,wchar_t *pImageName,wchar_t *pPassword)
- {
- char zipfilename[MAX_PATH]={0};
- WideCharToMultiByte(CP_ACP,NULL,pZipFileName,wcslen(pZipFileName),zipfilename,MAX_PATH,NULL,NULL);
- char filename_to_extract[MAX_PATH]={0};
- WideCharToMultiByte(CP_ACP,NULL,pImageName,wcslen(pImageName),filename_to_extract,MAX_PATH,NULL,NULL);
- char password[MAX_PATH]={0};
- if(pPassword)
- WideCharToMultiByte(CP_ACP,NULL,pPassword,wcslen(pPassword),password,MAX_PATH,NULL,NULL);
- //const char *password=NULL;
- //char *zipfilename="C:\\Users\\mengfei\\Desktop\\myzip.zip"; //压缩包
- //char *filename_to_extract="dirtt/123.txt"; //提取文件名
- //char *filename_to_extract="btn.bmp"; //提取文件名
- unzFile zipFile=NULL;
- zipFile = unzOpen64(zipfilename); //打开压缩包
- if (zipFile==NULL)
- {
- return NULL;
- }
- int outSize=0;
- void *data =NULL;
- if(pPassword)
- data=do_extract_onefile(zipFile, filename_to_extract,password,outSize);
- else
- data=do_extract_onefile(zipFile, filename_to_extract,NULL,outSize);
- unzClose(zipFile);
- //返回加载后的资源
- return data;
- }
复制代码 可以分别在XML.h 和XML.cpp中添加如下两个函数,在添加zip头文件
- #include "../zlib/unzip.h"
- #pragma comment(lib,"unzip.lib")
- #define CASESENSITIVITY (0)
- #define MAXFILENAME (256)
- #define WRITEBUFFERSIZE (8192)
复制代码 这样就ok啦
|
|