Я пишу программу в C в Visual Studio 2008. Я хочу, чтобы массив инициализировался из двоичного файла. Но я не хочу иметь двоичный файл вместе с файлом .exe. Поэтому я должен вставить двоичный файл в мой .exe. Я искал Google. Большинство ответов советуют мне использовать «Ресурсы» в VS. Но я не знаю ООП, и мне не нужно такое сложное решение. Я использую «Project-> Options-> Linker-> Input-> Raw двоичное изображение» в IAR EW для этой же цели. И это отлично подходит для этой задачи. Как это сделать в VS?Инициализировать массив из встроенного файла
ответ
Напишите простой сценарий на вашем любимом языке сценариев и обработайте двоичный файл в набор значений с разделителями-запятыми перед компиляцией (есть, вероятно, бесплатные инструменты, доступные также в Интернете). Вставьте этот набор значений в исходный файл C, чтобы статически инициализировать массив. Например, результатом может быть что-то вроде char data[] = {0x12, 0xAB, 0xC0, ... };
- сделайте с этими данными все, что вы хотите в своем исходном коде.
Я знаю это решение. Но мой двоичный файл размером ~ 0,5 КБ. Я хочу свободно изменять его без необходимости конвертировать. И я не хочу иметь такую «магическую» инициализацию. – LVitya
Вы можете автоматизировать этот процесс как шаг до процессора, который выполняется перед компиляцией. Изменения будут автоматически проецироваться в исходный код, когда вы измените двоичный файл и восстановите проект. – SomeWittyUsername
Хорошая идея, но, на мой взгляд, это решение неуклюжие. – LVitya
В чем вопрос? – GregC
Путь Windows использует ресурсы. BTW, вам не нужен OOP для этого: http://www.codeproject.com/Articles/4221/Adding-and-extracting-binary-resources –
А как насчет Linux? Могу ли я сделать свою кроссплатформенную программу? – LVitya