Я разрабатываю инструмент для кросс-платформенных инструментов, и я хочу сохранить некоторые данные только для чтения, данные о ресурсах (изображениях или строках или «Произведенные ...» информацию или версию файла Информация).Магазин только для чтения данных и C++
Я пытаюсь закодировать инструмент, либо «чистый c», либо «C++».
Я хочу хранить данные о ресурсах с помощью ассемблера, поэтому данные могут быть прочитаны непосредственно из файла программы или совместно используемой библиотеки без выполнения.
Данные также могут быть прочитаны, кроме того, самой программой при выполнении.
Данные будут записываться один раз, когда код скомпилирован.
Я нашел 2 возможных способа сделать это.
(1) Встроенная сборка. Добавьте непосредственно инструкции asm к файлам «pure c» или «C++», некоторые составители компиляторов, такие как Borland, MS, GNU, имели определенную форму.
(2) Сгенерируйте код и код сборки в отдельных файлах и используйте компилятор, такой компоновщик, сборку или компилятор, чтобы скомпилировать togheter all.
Я не хочу хранить ассемблерные инструкции, только данные.
Я ориентируюсь на процессоры x86-32 бит, Windows, Linux & BSD, но может быть распространен на другие платформы или архитектуры, если это возможно.
Я знаю, что Windows & Linux использует разные форматы файлов, такие как PE или COFF или ELF.
Любые дополнительные или альтернативные идеи? Любые предложения, руководства, ссылки о том, как это сделать?
Спасибо.
Этот ответ может содержать необходимую информацию: http://stackoverflow.com/a/4158997/12711 Один метод работает только для инструментальной цепочки GCC, но другой метод работает с любым компилятором C. Чтобы позволить общей библиотеке читать данные, вам нужно иметь некоторый методd, чтобы получить указатель на данные в общую библиотеку (легко сделать с помощью функции, если это выполнимо для вас). –