DUILIB-编译ZIP皮肤到程序中
来源:互联网 发布:视频配音秀软件 编辑:程序博客网 时间:2024/04/29 19:50
为了防止客户随意的修改皮肤文件,可以把皮肤文件打包为ZIP编译到程序中。虽说不能阻止牛掰软件的资源提取,但是防一般的菜鸟客户足矣。
下面是示例代码
#include "resource.h"//导入的资源类型必须为ZIPRES,和WindowImplBase的定义一致。为所有资源打包,而不要直接打包资源的文件夹class CDYFrameWnd : public WindowImplBase{public:explicit CDYFrameWnd(LPCTSTR pszXMLPath) :strXMLPath_(pszXMLPath){};explicit CDYFrameWnd(){};virtual ~CDYFrameWnd();virtual LPCTSTR GetWindowClassName()const { return _T("Window"); }virtual CDuiString GetSkinFile() { return _T("Window.xml"); }virtual CDuiString GetSkinFolder() { return _T(""); } //为UILIB_ZIPRESOURCE时候用不到,随便实现virtual void InitWindow();virtual LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM /*lParam*/, bool& /*bHandled*/);virtual void Notify(TNotifyUI& msg);virtual CControlUI* CreateControl(LPCTSTR pstrClass);virtual LPCTSTR GetResourceID() const{return MAKEINTRESOURCE(IDR_ZIP_SKIN);};virtual UILIB_RESOURCETYPE GetResourceType() const{return UILIB_ZIPRESOURCE; };protected:CDuiString strXMLPath_;};
需要注意的是WindowImplBase中是这样载入ZIP资源的,因此资源类型必须为ZIPRES
case UILIB_ZIPRESOURCE:{HRSRC hResource = ::FindResource(m_PaintManager.GetResourceDll(), GetResourceID(), _T("ZIPRES"));if( hResource == NULL )return 0L;DWORD dwSize = 0;HGLOBAL hGlobal = ::LoadResource(m_PaintManager.GetResourceDll(), hResource);if( hGlobal == NULL ) {
添加后如下
///////////////////////////////////////////////////////////////////////////////// ZIPRES//IDR_ZIP_SKIN ZIPRES "res\\UIZIP.zip"
代码可以去github获取:
https://github.com/CodeBees/duilib-Ex-Debug/tree/master/Demo/UIZIPExample
7 0
- DUILIB-编译ZIP皮肤到程序中
- duilib把ZIP皮肤编译进EXE
- duilib把ZIP皮肤编译进EXE
- 在DLL中使用duilib,并把ZIP皮肤编译进DLL中
- 解决duilib使用zip换肤卡顿的问题(附将资源集成到程序中的操作方法)
- Duilib 使用Zip 资源
- Duilib 使用Zip资源
- VC皮肤库之duilib
- VC直接编译数据文件到程序中。
- Duilib从Zip加载资源
- windows程序中添加皮肤库
- 关于使用duilib皮肤读取不到问题
- java 多excel下载 打成zip压缩包 程序中创建文件 响应到浏览器
- 以zip方式更换皮肤
- duilib 将ui资源文件 打包到exe中.
- Duilib程序中出现pRoot为NULL,调用xml失败
- Duilib编译静态库
- VS2012 编译DUILIB
- 哈夫曼树
- class-dump 和 iOSOpenDev 的使用
- sizeof运算符详解
- 关于redo大小设置问题的总结
- SQL - NoSQL
- DUILIB-编译ZIP皮肤到程序中
- [ZL] Terminator的安装和简介
- 版本控制工具-SVN
- 三级网络之中小型系统规划与设计
- Apache+SVN 详细配置
- EJB3.0
- 准备工作
- Android 开机动画
- 【cocos2d-x 3.x 学习笔记】对象创建方式讨论