Duilib将UI资源文件打包到exe教程

转载:http://www.voidcn.com/blog/w839687571/article/p-6001921.html

转载:http://www.voidcn.com/blog/x356982611/article/p-560532.html

需要注意的是WindowImplBase中是这样载入ZIP资源的,因此资源类型必须为ZIPRES

一、在工程中新建res文件夹

 二、把窗口需要的xml文件和图标放到res文件夹中

三、把这些文件进行压缩,格式为.zip(必须按照下面方式压缩,不然程序加载资源会失败)

四、修改工程属性

第一步:确保是默认设置

第二步:

编辑好的结果:

注:个人根据每个工程具体设置,这个只是个例子。。。

第三步:

最后点击确定,工程属性修改完成。

五、添加资源

第一步:

第二步:

第三步:

第四步:

第五步:

六、程序中设置资源ID, 和 加载资源方式.

1 virtual LPCTSTR GetResourceID() const
2     {
3         return MAKEINTRESOURCE(资源ID);
4     };
5     virtual UILIB_RESOURCETYPE GetResourceType() const
6     {
7         return UILIB_ZIPRESOURCE; 
8     };

WinMain函数这个写:

 1 int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
 2 {
 3     CPaintManagerUI::SetInstance(hInstance);
 4 
 5     HRESULT Hr = ::CoInitialize(NULL);
 6     if( FAILED(Hr) ) return 0;
 7 
 8     CLoginWnd Login;
 9     Login.Create(NULL, _T("LoginWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
10     Login.CenterWindow();
11     Login.ShowModal();
12 
13     ::CoUninitialize();
14     return 0;
15 }

 测试工程:

Demo

原文地址:https://www.cnblogs.com/chechen/p/5959336.html