【发布时间】:2011-08-08 18:06:55
【问题描述】:
我有一个二进制文件,我想直接嵌入到我的源代码中,所以它会直接编译成 .exe 文件,而不是从文件中读取它,所以当我执行的时候数据已经在内存中了启动程序。
我该怎么做?
我得到的唯一想法是将二进制数据编码为 base64,将其放入字符串变量中,然后将其解码回原始二进制数据,但这是一种棘手的方法,会导致毫无意义的内存分配。另外,我想将数据存储在 .exe 中,与原始数据一样紧凑。
编辑:我想到使用base64的原因是因为我也想让源代码文件尽可能小。
【问题讨论】:
-
只要你把这个资源放在一个单独的源文件中,我认为没有理由让源大小成为关注的一部分。让它易于使用并且首先要清楚发生了什么,让编译器担心读取一些额外的字符。
-
这只是我的喜好,当然没关系,但我喜欢紧凑型。
-
既然你喜欢compact:stackoverflow.com/a/52843063/6846474我写了一个工具,它可以将带有资源路径列表的头文件直接编译成目标文件或静态库。
标签: c++ visual-studio-2008 binary-data