Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
4 / 4 / 1
Регистрация: 03.07.2012
Сообщений: 37

Добавление данными в исполняемый файл

04.04.2013, 20:46. Показов 1890. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно добавить файлы с данными, например изображение, в исполняемый файл?
И как его использовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2013, 20:46
Ответы с готовыми решениями:

[Masm32] Добавление иконки в исполняемый файл
как добавить иконку в эксе файл через линковку компиляцию

Открыть исполняемый файл, если запущен конкретный файл
Доброго времени суток! Вот такая проблемка мучает: мне нужно решить следующую задачу: открыть исполняемый файл,если запущен конкретный...

Как включить txt файл в исполняемый файл?
Подскажите плиз как решить проблему, суть такова: в txt файле имеется таблица (разделитель - знак табуляции). Требуется зашить её внутрь...

9
 Аватар для KwanzaBot
9 / 9 / 8
Регистрация: 05.04.2013
Сообщений: 62
06.04.2013, 09:18
base64 же.
А для использования декодируешь просто)
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
06.04.2013, 12:06
ld, objcopy, и тп:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bash-4.2$ echo -en "123456789\0" >data.bin
bash-4.2$ cat foo.cpp
#include <iostream>
 
extern uint8_t data[]           asm("_binary_data_bin_start");
extern uint8_t data_end[]       asm("_binary_data_bin_end");
extern uint32_t data_size            asm("_binary_data_bin_size");
 
int main() {
        std::cout << &data_size << " byte(s) of binary data: " << data << std::endl;
 
        return 0;
}
bash-4.2$ g++ -W -Wall -ofoo -Wl,--format=binary -Wl,data.bin -Wl,--format=default foo.cpp
bash-4.2$ ./foo
0xa byte(s) of binary data: 123456789
bash-4.2$
1
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
06.04.2013, 20:49
g_u_e_s_t, какая черная магия! а насколько это документированное поведение линкера? можно ли таким способом включить два бинарных файла, например?
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
06.04.2013, 21:18
Цитата Сообщение от yekka Посмотреть сообщение
а насколько это документированное поведение линкера?
Более чем полностью Мы имеем полное право указать входной формат для каждого линкуемого файла. Посмотреть список поддерживаемых Вашим линкером форматов можно например через objdump -i . *nix-like систем где нет формата binary (поместить содержимое файла как есть ничего в нем не меняя) я не встречал.
Цитата Сообщение от yekka Посмотреть сообщение
можно ли таким способом включить два бинарных файла
Конечно.
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
06.04.2013, 21:28
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
Более чем полностью
ну, к примеру, где что нужно почитать, чтобы узнать, что при такой строке компиляции у нас будут определены символы _binary_data_bin_start/end/size?

Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
objdump -i
это как раз таки в мане для ld написано

Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
Конечно
а конфликта имен не будет?
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
06.04.2013, 21:31
Цитата Сообщение от yekka Посмотреть сообщение
ну, к примеру, где что нужно почитать, чтобы узнать, что при такой строке компиляции у нас будут определены символы
info ld в разделе про скрипты линкера
Цитата Сообщение от yekka Посмотреть сообщение
а конфликта имен не будет?
Я не встречал, по идее линкер скажет если такое случиться.
1
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
06.04.2013, 21:49
Цитата Сообщение от g_u_e_s_t Посмотреть сообщение
в разделе про скрипты линкера
остается только поверить наслово.
такой объем информации наскоком не осилить.
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
07.04.2013, 10:45
Ну как нибудь потом
Со своей стороны могу заверить, что собирал так в 2х проекта - статическая линковка + своя fs вшитая в elf, проблем (с линковкой) не было обнаружено ни где.

Добавлено через 12 часов 53 минуты
yekka, сегодня добрался до манов, в man objcopy есть еще немножко:
-B bfdarch
--binary-architecture=bfdarch
Useful when transforming a architecture-less input file into an object file. In this case the output architecture can be set to bfdarch. This option will be ignored if the input file has a known bfdarch. You can access this binary data inside a program by referencing the special symbols that are created by the conversion process. These symbols are called _binary_objfile_start, _binary_objfile_end and _binary_objfile_size. e.g. you can transform a picture file into an object file and then access it in your code using these symbols.
1
4 / 4 / 1
Регистрация: 03.07.2012
Сообщений: 37
12.04.2013, 18:10  [ТС]
пока что решил проблему тулзой gdk-pixbuf-csource.
Даёшь ей картинку, вывод перенаправляешь в файл. В файле структура сишная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.04.2013, 18:10
Помогаю со студенческими работами здесь

Включить в исполняемый файл бинарный файл
Собственно задача такая - есть некая программа которая пишет BIN файл во внешнее устройство. Но пользователи иногда путают файлы при выборе...

Исполняемый файл
Такой вопрос. Я писал на python в exlipse. Теперь хочу скомпилировать проект и чтобы он запускался с .exe. мне делать export в JAR file?

Исполняемый файл
Как создать исполняемый файл(.exe) из проекта в IntelliJ IDEA с JavaFX? Я пробовал через bulid artifacts но там сталкиваюсь с ошибкой:...

Исполняемый файл
Всем привет. Начал изучать Common Lisp совсем недавно. Знаю, что вопрос уже много раз поднимался, но в конечном итоге хотелось бы...

Исполняемый файл java
Создал исполняемый файл из jar runnable. Руководствовался этой статьей: http://ru.wikihow.com/создать-исполняемый-файл-в-Eclipse ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru