从ZIP压缩文件中加载资源
DuiVision支持将所有的图片和XML资源文件放在一个zip格式的压缩文件中,如果使用zip格式的资源文件,需要在主程序代码中初始化部分指定使用的压缩文件的文件名。
如果使用zip资源文件,则resource.xml文件的位置默认是放在zip文件中的xml子目录下。建议zip文件按照xml、skins这样的子目录来压缩,见下面的压缩文件示例:
有zip资源文件的情况下,资源文件的加载并不一定是加载的zip文件中的内容,加载的优先级如下:
1)如果只有zip压缩文件,没有非压缩的xml和skins目录,则只会加载zip文件中的内容;
2)如果zip压缩文件和非压缩的xml和skins目录同时存在,则优先加载非压缩的xml和skins目录中的文件,对应的文件不存在的情况下才去zip文件中查找是否存在并加载。
之所以这样定义是方便通过非压缩的文件替换压缩文件中部分内容,以及方便调试和发布工程,调试阶段可以直接修改非压缩的目录中文件,不用每次修改之后都要再打一次压缩包。
说明:zip资源文件中仅支持包含xml、png、bmp类型的文件,其他文件无法加载,如果有其他类型的文件,请不要放在zip文件中,应该单独放在外部目录中加载。
将资源ZIP压缩文件作为EXE的内嵌资源
DuiVision支持将资源zip文件作为EXE的内嵌资源,将资源文件编译到exe中可以生成不依赖任务资源文件,可以独立运行的exe文件。
制作内嵌ZIP资源的方法:
1、将bin目录中的所有资源使用的子目录和文件进行压缩为ZIP文件(参考上一节压缩时候的目录结构);
2、将压缩文件作为资源添加到工程的资源中,添加时候资源类型一定要输入“UI”;
在VC工程的资源中添加资源,然后选择导入:
在导入对话框中选择资源zip文件,在弹出的自定义资源类型对话框中输入UI,必须使用这种类型,因为DuiVision中限定了加载的内嵌界面压缩包资源必须是”UI”类型的。
3、调用DuiSystem构造函数时候strResourceFile参数使用res:resid的格式,其中resid为已经添加的资源的ID,资源ID可以在resource.h文件中查到;
4、这样编译的EXE文件就可以使用内嵌的界面资源文件(如果EXE所在目录中有资源相关的目录和文件,还是会优先使用外部文件)。