Duilib 使用Zip 资源

1.duilib 使用磁盘中的zip文件

Duilib使用zip需要重写下面两个虚函数:

UILIB_RESOURCETYPE CJG_RiskSettingWnd::GetResourceType() const//指定资源类型
{
	return UILIB_ZIP;
}

CDuiString CJG_RiskSettingWnd::GetZIPFileName() const//指定ZIP文件路径
{
	return _T("RiskSetUI.zip");
}

注意事项:
1.资源文件路径是大小写敏感的。
2.指定资源路径的时候前面不需要’/’ 或者 ‘\’ ,直接使用RiskSetUI/test.xml
2.如果GetSkinFolder 不是返回的 _T("");则需要修改GetSkinFile路径以及xml里面的部分图片资源路径。
原因:zip在FindFlie的时候是解压到当前文件夹的方式来查找资源的,例如上面的RiskSetUI.zip的文件里面有一个test.xml ,按照当前文件夹解压则是RiskSetUI/test.xml,所以GetSkinFile的时候返回_T(“RiskSetUI/test.xml”),同理其他问价以及嵌套文件都是同一个原理。(为了方便配置资源路径,可以先解压到当前文件夹,配置好之后再删除就行)
3.如果GetSkinFolder返回_T("") 则什么也不需要修改。
总结:为了以后方便资源打包最好在开始的时候GetSkinFolder返回_T(""),这样工程打包的时候改动最小

eg:我们需要使用skin目录下的资源
Duilib 使用Zip 资源_第1张图片
在这里插入图片描述

按照:当前文件夹解压的模式我们需要对skin文件夹打包
Duilib 使用Zip 资源_第2张图片

2.duilib 使用资源文件中的zip

1.假设资源ID为:IDR_ZIPRES1

UILIB_RESOURCETYPE CJG_RiskSettingWnd::GetResourceType() const//指定资源类型
{
	return UILIB_ZIPRESOURCE;
}

LPCTSTR CMainWnd::GetResourceID() const
{
	return MAKEINTRESOURCE(IDR_ZIPRES1);
}

2.把上面压缩的skin.zip加入到文件资源里面
Duilib 使用Zip 资源_第3张图片
在这里插入图片描述

你可能感兴趣的:(Duilib)