2013-03-19 2 views
0

Я пишу программу в C в Visual Studio 2008. Я хочу, чтобы массив инициализировался из двоичного файла. Но я не хочу иметь двоичный файл вместе с файлом .exe. Поэтому я должен вставить двоичный файл в мой .exe. Я искал Google. Большинство ответов советуют мне использовать «Ресурсы» в VS. Но я не знаю ООП, и мне не нужно такое сложное решение. Я использую «Project-> Options-> Linker-> Input-> Raw двоичное изображение» в IAR EW для этой же цели. И это отлично подходит для этой задачи. Как это сделать в VS?Инициализировать массив из встроенного файла

+0

В чем вопрос? – GregC

+2

Путь Windows использует ресурсы. BTW, вам не нужен OOP для этого: http://www.codeproject.com/Articles/4221/Adding-and-extracting-binary-resources –

+0

А как насчет Linux? Могу ли я сделать свою кроссплатформенную программу? – LVitya

ответ

1

Напишите простой сценарий на вашем любимом языке сценариев и обработайте двоичный файл в набор значений с разделителями-запятыми перед компиляцией (есть, вероятно, бесплатные инструменты, доступные также в Интернете). Вставьте этот набор значений в исходный файл C, чтобы статически инициализировать массив. Например, результатом может быть что-то вроде char data[] = {0x12, 0xAB, 0xC0, ... }; - сделайте с этими данными все, что вы хотите в своем исходном коде.

+0

Я знаю это решение. Но мой двоичный файл размером ~ 0,5 КБ. Я хочу свободно изменять его без необходимости конвертировать. И я не хочу иметь такую ​​«магическую» инициализацию. – LVitya

+0

Вы можете автоматизировать этот процесс как шаг до процессора, который выполняется перед компиляцией. Изменения будут автоматически проецироваться в исходный код, когда вы измените двоичный файл и восстановите проект. – SomeWittyUsername

+0

Хорошая идея, но, на мой взгляд, это решение неуклюжие. – LVitya