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

时间:2010-04-29 19:23:04

标签: c++ windows linker embed binary-data

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

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

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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