前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可执行程序中嵌入资源文件(resource manager)

可执行程序中嵌入资源文件(resource manager)

作者头像
sofu456
发布2022-05-06 15:46:26
4400
发布2022-05-06 15:46:26
举报
文章被收录于专栏:sofu456sofu456

window资源文件

rc命令,转换rc文件为mui文件(mui资源技术)

在这里插入图片描述
在这里插入图片描述

如图展示windows项目rc文件的编译类型,rc文件使用rc命令编译为object文件,最后linker进exe

在这里插入图片描述
在这里插入图片描述

使用rc *.rc 生成res资源文件

在这里插入图片描述
在这里插入图片描述

vc使用如下方式访问资源

代码语言:javascript
复制
LoadIcon(IDI_MY_ICON);
LoadBitmap(IDI_MY_BITMAP);
LoadResource(ID_FILE)、LockResource(handle)   //返回void*指向资源

resman

跨平台的资源管理工具,地址:https://github.com/nohajc/resman

代码语言:javascript
复制
#pragma once
#include "resman.h"

// Define a global variable for each file
// It will be used to refer to the resource
constexpr resman::Resource<1> gRes1("resource_file1.jpg"); // resource with ID 1
constexpr resman::Resource<2> gRes2("resource_file2.txt"); // resource with ID 2
constexpr resman::Resource<3> gRes3("resource_file3.mp3"); // resource with ID 3

使用如下命令生成object文件

rescomp resource_list.h -o resource_bundle.o [-R resource_search_path] [-I resman_include_path]

在这里插入图片描述
在这里插入图片描述

访问资源

代码语言:javascript
复制
#include "resource_list.h"
...
resman::ResourceHandle handle{gRes1};
// ResourceHandle provides convenient interface to do things like:
// iterate over bytes
for (char c : handle) { ... }
// convert bytes to string
std::string str{handle.begin(), handle.end()};
// query size and id
unsigned size = handle.size();
unsigned id = handle.id();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • window资源文件
  • resman
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档