如何将二进制数据嵌入/链接到Windows模块

Cri*_*onX 9 c++ windows embed linker binary-data

所以我有一个Visual Studio 2008项目,它有大量当前引用的二进制数据.我希望通过将二进制数据作为"资源"添加并将其编译为DLL来打包二进制数据,就像使用C#一样.

让我们说我的所有数据都有".data"的扩展名,目前正在从visual studio项目中读取.

有没有办法可以将数据编译或链接到它正在调用的.dll中?

我已经查看了一些google链接,到目前为止我还没有想出任何东西 - 我提出的唯一可能的解决方案是使用类似ResGen的东西来创建.resources文件然后链接它使用带有/ Embed或/ Link标志的AssemblyLinker.我不认为它工作正常,因为我没有文本文件来创建.resources文件,而是二进制文件本身.

有什么建议?

ren*_*ick 6

您可以将二进制数据嵌入为C语言数组 - 根本不涉及任何资源.一个古老的经典技巧.例如,见XD


Rob*_*ert 5

  1. 右键单击资源脚本(.rc文件)
  2. 选择导入

http://msdn.microsoft.com/en-us/library/saced6x2.aspx

你可以嵌入你想要的任何"自定义"文件,以及像.bmps和东西VisualStudio"知道"如何编辑的东西.然后你可以使用你的框架的资源函数来访问它们,比如FindResource LoadResource等......

如果您没有资源脚本.

  1. 单击项目
  2. 添加新项目
  3. 资源脚本

http://msdn.microsoft.com/en-us/library/sxdy04be(v=VS.71).aspx