Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Embed/Link binary data into a Windows module

So I have a Visual Studio 2008 project which has a large amount of binary data that it is currently referencing. I would like to package the binary data much like you can do with C# by adding it as a "resource" and compiling it as a DLL.

Lets say all my data has an extension of ".data" and is currently being read from the visual studio project.

Is there a way that you can compile or link the data into the .dll which it is calling?

I've looked at some of the google link for this and so far I haven't come up with anything - the only possible solution I've come up with is to use something like ResGen to create a .resources file and then link it using AssemblyLinker with /Embed or /Link flags. I dont think it'd work properly though because I dont have text files to create the .resources files, but rather binary files themselves.

Any advice?

like image 737
CrimsonX Avatar asked Apr 29 '10 19:04

CrimsonX


2 Answers

  1. Right click the resource script (.rc file)
  2. Choose Import

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

You can embed any "custom" file you want, as well as things like .bmps and stuff VisualStudio "knows" how to edit. Then you can access them with your framework's resource functions like FindResource LoadResource etc...

If you don't have a resource script.

  1. Click Project
  2. Add New Item
  3. Resource Script

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

like image 166
Robert Avatar answered Oct 22 '22 05:10

Robert


You can embed the binary data as a C language array - no resources involved at all. An old classic trick. see for example XD

like image 30
renick Avatar answered Oct 22 '22 05:10

renick