应用程序内嵌资源文件[训练数据]

Windows exe/dll内嵌数据

?

调用资源的方式

exe/dll有对应的入口函数main/_tmain/winmain/_dllmain等;透过这些入口函数可以获取exe文件路径或者文件的handle[exe通过入口函数拿到路径后调用LoadLibrary得到句柄,dll直接从入口函数得到句柄];静态库没有入口函数拿不到句柄不能进行资源嵌入;

?

调用代码示例:

[纯数据文件,如果是media文件{音视频文件}或者数据库db文件等需要用专门库解析的文件则可以考虑将读取的数据指针的内容写入本地临时文件后再调用相关的库去读取文件内容]

?


HMODULE hExe = LoadLibrary((argv[0]));

if (hExe == NULL)

{

return -1;

}

?

HRSRC hrc= FindResource(hExe,MAKEINTRESOURCE(IDR_MLDATA1),L"MLDATA");

int x = SizeofResource(hExe,hrc);

printf("%d\n", x);

?

HGLOBAL hResLoad = LoadResource(hExe, hrc);

float* ptr = (float*)LockResource(hResLoad);

if (ptr == NULL)

{

return -1;

}

?

// here use ptr as raw data pointer and finish your work

// ...

?

if (!FreeLibrary(hExe))

{

return -1;

}

?

在注释处使用指针ptr完成工作即可,对应没有使用资源嵌入的代码应是如此:


char* file = "data.bin"

float* ptr = new float[36*32768];

FILE* f = fopen(file, "rb");

fread(ptr, sizeof(float), 36*32768, f);

fclose(f);

// here use ptr as raw data pointer and finish your work

// ...

?

通过资源嵌入方式访问数据时FindResource参数里的IDR_MLDATA1为向visual studio里导入资源时自动生成的ID; 第三个参数" MLDATA"是导入类型时自定义的类型名称;

?

添加资源的方式

第一步;右键添加资源

?

第二步:通过右侧Import入口导入自定类型资源

?

第三步:右下角文件类型过滤器选all files后,在浏览区域里选定要添加的数据文件

?

?

第四步:输入自定义的数据类型字符串;该字符串在FindResource接口中用到

?

?

Linux下嵌入资源文件

?

编写一个汇编文件 blob.S

?


.global blob

.global blob_size

.section .rodata

blob:

.incbin "blob.bin"

1:

blob_size:

.int 1b - blob

?

在调用的文件里声明

?


extern uint8_t blob[];

extern int blob_size;

?

直接按名称使用即可

?

编译的指令:


gcc -c blob.S -o blob.o

?

?

MAC下嵌入资源文件

?

Mac下可用gcc,按linux下方式操作

?

?

?

Reference

[1]
http://blog.csdn.net/bupt073114/article/details/26691183

[2] https://msdn.microsoft.com/en-us/library/ms648008(v=vs.85).aspx#_win32_Updating_Resources

[3] http://stackoverflow.com/questions/1997172/is-there-a-linux-equivalent-of-windows-resource-files

[4] http://stackoverflow.com/questions/5479691/is-there-any-standard-way-of-embedding-resources-into-linux-executable-image

[5] http://stackoverflow.com/questions/4864866/c-c-with-gcc-statically-add-resource-files-to-executable-library

?

?

时间: 2024-08-24 11:10:22

应用程序内嵌资源文件[训练数据]的相关文章

ABP官方文档翻译 6.5 内嵌资源文件

内嵌资源文件 介绍 创建内嵌文件 xproj/project.json形式 csproj形式 添加内嵌资源管理器 使用内嵌视图 使用内嵌资源 ASP.NET Core 配置 忽略文件 重写内嵌文件 介绍 ABP提供了一种简单的方式在web应用中使用内嵌Razor视图(.cshtml文件)和其他资源(css,js,img...files).你可以使用这个特征创建包含UI功能的plugins/modules. 创建内嵌文件 首先,我们要创建一个文件并标记它为嵌入资源.任何程序集都可以包含嵌入资源.p

C#中内嵌资源的读取

起因 作为一个从Cpper转到C#并且直接从事WPF开发的萌新来说,正式编码过程中碰到了不少问题,一路上磕磕碰碰的.因为软件设计需求上的要求,需要将一些配置文件(XML.INI等)内嵌到程序中,等需要时进行读取.找了不少资料,加上自己的连蒙带猜,终于搞定了.在此,乘着还热乎着赶紧记录下.本人用的是Visual Studio 2015 英文版,其实都差不多的. 实现步骤 执行程序中加入内嵌文件步骤 在执行程序中找到 Resources.resx 并双击,会进入项目属性的 Resources 选项卡

微信小程序内嵌网页的一些(最佳)实践

前言 3 个月前,微信小程序推出了 web-view 组件引发了一波小高潮,笔者所在的大前端团队写过一篇浅析,详情可见:浅谈微信小程序前端生态. 我们曾大胆猜想,这一功能,可能直接导致小程序数量增长迎来一波高峰. 毕竟磨刀霍霍却一直资源不足的团队应该不少,现在可以把已有 H5 应用嵌入到小程序 web-view 容器中,以最低的开发成本坐蹭微信流量红利,何乐而不为呢? 我们也曾畅想也许"小程序页面+ web 页"混合开发(甚至 web 更重)会成为以后的新趋势. 2M 代码限制(如今已

【转】WebResource实现在自定义控件中内嵌JS文件

在类库中的资源  其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发WebControl的编程模型,于是我们摆脱了asp里面的include模式的复用方式.不过1.0/1.1提供的Web控件开发模型对于处理没有image.css等外部资源的组件还算比较得心应手,script虽然很多时候也是外部资源,但在开发控件的时候我们习惯把script使用Page.Registe

Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问

\第五天-servlet开发和ServletConfig与ServletContext对象\12-WEB应用中的普通Java程序如何读取资源文件.mp4; 多层时,DAO为了得到资源文件中的配置参数: servlet 中的 doGet方法中获得ServletcontextServletcontext context = this.getServletContext();然后将context 对象传到 DAO中使用,这样的话耦合就高了,不合理. 所以:要通过类加载器的方式 这个Properties

WEB应用中的普通Java程序如何读取资源文件

1 package cn.itcast; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpSer

小程序内嵌网页的开放是一场创业公司的及时雨吗

11.2晚小程序突然开放两个重磅能力:1.小程序内可直接打开网页,2.小程序可关联500个公众号.通过研究,我们发现这次新能力的开放,促使小程序推动微信的春秋战国时代来临.有开发者感叹,不懂小程序的人,以后就不要出来谈营销啦!接下来,我们就听听萤火新媒萤连长从三个方向为大家解读,为什么新能力的开放是一场创业公司的及时雨.一.对于开发者.运营者有哪些好处1.小程序有了自己的流量用户使用小程序时,可以从小程序直接进入到内嵌网页,同时也支持用户从内嵌网页返回小程序.这样一来,小程序也可以做成小的流量分

[小程序开发] 微信小程序内嵌网页web-view开发教程

为了便于开发者灵活配置小程序,微信小程序开放了内嵌网页能力.这意味着小程序的内容不再局限于pages和large,我们可以借助内嵌网页丰富小程序的内容.下面附上详细的开发教程(含视频操作以及注意事项) 一.小程序内嵌网页web-view教程 1) 微信公众平台,登录小程序账号 2) 左侧-设置-开发设置-业务域名-配置 3) 小程序管理员微信扫码 4) 填写小程序业务域名,域名需ICP备案 5) 下载校检文件上传至服务器指定目录,保存 6) 小程序业务域名配置完成7) 打开微信开发者工具,添加小

一、小程序内嵌Html示例

小程序内嵌Html 1.下载wxParse:https://github.com/icindy/wxParse 2.下载完成后将插件目录下的wxParse文件夹拷贝到项目目录下 (文件夹明细) 3.全局配置文件app.wxss中导入wxParse的样式表 @import "/wxParse/wxParse.wxss"; (以上只是仅在app.wxss引入配置,其他页面布局未动) 4.下面是在我们自己需要写的页面操作 在需要加载html代码的页面js文件中引用wxParse.js文件并通