2013-03-19 78 views
0

我在Visual Studio 2008的C中编写程序。我想从二进制文件初始化数组。但我不想让二进制文件和.exe文件一起使用。所以我必须将二进制文件嵌入到我的.exe中。我搜索了谷歌。大部分答案都建议我使用VS中的“资源”。但我不知道面向对象,我不需要这样复杂的解决方案。 为了同样的目的,我在IAR EW中使用了“项目 - >选项 - >链接器 - >输入 - >原始二进制图像”。而且它完美的完成了这项任务。 如何在VS中做到这一点?从嵌入文件初始化数组

+0

什么问题? – GregC 2013-03-19 15:38:03

+2

Windows方式正在使用资源。顺便说一句,你不需要这样的OOP :) http://www.codeproject.com/Articles/4221/Adding-and-extracting-binary-resources – 2013-03-19 15:39:56

+0

Linux又如何?我可以让我的程序跨平台吗? – LVitya 2013-03-19 17:46:14

回答

1

用你喜欢的脚本语言编写一个简单的脚本,并在编译之前将二进制文件处理成逗号分隔的一组值(也可能有在线提供的免费工具)。将这组值插入到您的源C文件中以静态初始化一个数组。例如,结果可能类似char data[] = {0x12, 0xAB, 0xC0, ... }; - 在源代码中使用这些数据。

+0

我知道这个解决方案。但我的二进制文件大约0.5 KB。我想自由修改它而不需要转换。我不想有这样的“魔术”初始化。 – LVitya 2013-03-19 15:52:02

+0

您可以将此过程自动化为在编译之前运行的预处理器步骤。更改二进制文件并重建项目时,更改将自动投影到您的源代码中。 – SomeWittyUsername 2013-03-19 15:54:22

+0

好主意,但在我看来这个解决方案很笨拙。 – LVitya 2013-03-19 15:59:39