Форум программистов, компьютерный форум, киберфорум
Проекты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590

bin2cpp конвертер бинарных файлов в C++ файлы

14.08.2025, 23:38. Показов 5248. Ответов 82

Студворк — интернет-сервис помощи студентам
Написал конвертер бинарных файлов в C++ файлы. Это нужно для кроссплатформенного внедрения ресурсов в исполняемый файл. Из любого файла можно создать, например, заголовочный файл, внутри которого будет массив с данными. Соответственно, потом можно работать с этими данными непосредственно в памяти.
Публикую прогу для тех, кого может заинтересовать. Полагаю, что похожих программ в инете много, но возможно кому-то понравится именно моя. Тем более, те программы, которые я встречал, работали медленнее, чем моя, и не имели графического интерфейса. Например, как видно на скриншоте на гитхабе, шрифт OpenSans конвертировался за 14 миллисекунд.
Одним словом, хотите пользуйтесь, не хотите - не пользуйтесь.

Скачать можно здесь: https://github.com/RoyalXXX/bin2cpp. Там я выложил, в том числе, уже скомпилированные бинарники.

Доступны две версии:

1. оконная версия bin2cpp GUI - работает быстрее консольной, есть проверка на валидность имен.

2. консольная версия bin2cpp console (её код открыт и любой может использовать по лицензии MIT - одна из самых свободных лицензий). Эта версия чуть попроще, поскольку имена не проверяются на корректность. И она чуть медленнее, чем версия с оконным интерфейсом - там я немного иначе реализовал. Если будете сами компилировать, то советую использовать mingw-w64-ucrt-x86_64-gcc. Программа, скомпилированная этим компилятором, работает быстрее, по крайней мере, у меня.

В обеих версиях есть показ времени конвертирования и вывода прогресса конвертирования.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.08.2025, 23:38
Ответы с готовыми решениями:

Конвертер Исходных кодов
Здравствуйте! Появилась отличная идея! Вообщем, создать программу в которую пользователь загружает...

Создание бинарных файлов. Чтение и запись бинарных файлов
Здраствуйте. Сколько я не рылся в нете сколько не искал, как то все не доходит до меня тупого). На...

Почему так(комбинации бинарных и не бинарных вводов и выводов)?
#include <string> #include <iostream> #include <fstream> #include <iomanip> using namespace...

82
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 13:59
Студворк — интернет-сервис помощи студентам
пакетные менеджеры на линуксе неплохо понимают, для какой проги нужна та или иная зависимость
Для этого мантейнер пакета должен хорошо потрудиться.
Когда ведение всех этих зависимостей всех задолбало, стали изобретать эти флетпаки и пр. Чем создали другую проблему - не все программы, усиленно запихиваемые в это пакеты, работают в них корректно. Зато "галочку поставили" - упаковали. Ну и о росте расхода дискового пространства также воют линуксоиды, считающие себя единственно правильными.
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:04
Цитата Сообщение от Royal_X Посмотреть сообщение
Все же приятно)
Чувство приятного субъективно. А объективно, ты можешь себе поставить более жирный вариант? Можешь. Ты можешь RPM поставить не на федору. Очень вряд ли. А можешь flatpack? Можешь.

Не всем "приятно" создаёт размер дистрибутива. Многим - вопрос наличия ПО под их операционку, с простой установкой.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590
15.08.2025, 14:06  [ТС]
Моя позиция такая, что на винде нужно делать статическую линковку, если размер exe не превышает 20-25 МБ.

Если превышает, то в такое случае пусть dll и остальные ресурсы лежат рядом.
Еще кишки могут быть рядом, если прога устанавливается через установщик в program files. Там уже пусть эти файлы лежат отдельно, никого это не раздражает.

Но если маленькая программа, как вот bin2cpp GUI на 8 МБ, то я не вижу смысла ставить кишки рядом. К тому же, размер получится в сумме чуток больше, чем сейчас.
Мне придется положить рядом с exe не только dll от wxwidgets, но и от mingw-w64-ucrt-x86_64-gcc. Для последнего это
ibstdc++-6.dll
libgcc_s_seh-1.dll
libwinpthread-1.dll
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:08
Цитата Сообщение от Royal_X Посмотреть сообщение
на винде нужно делать статическую линковку, если размер exe не превышает 20-25 МБ.
Не нужно. Можно, если хочется, но практической пользы - нуль.

Цитата Сообщение от Royal_X Посмотреть сообщение
Но если маленькая программа, как вот bin2cpp GUI на 8 МБ,
А без разницы на размер программы. Распространять её надо в удобном для пользователя виде, а не красить яйца, которые никто не увидит)

Правильные приоритеты выбирать надо)
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590
15.08.2025, 14:12  [ТС]
Но когда делаю на Qt, то я всегда использую динамическую линковку, чтобы не нарушать лицензию, например

https://royalxxx.itch.io/image-assemble-tool
https://royalxxx.itch.io/qt-vigenere

Да и на Qt6 как раз 25 МБ будет.

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Распространять её надо в удобном для пользователя виде,
ну вот честно скажи, тебе как удобно: один exe или с кишками?
0
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 14:13
В Qt можно делать и статическую, главное соблюдать условия.
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:13
Цитата Сообщение от Royal_X Посмотреть сообщение
то я всегда использую динамическую линковку, чтобы не нарушать лицензию, например
И много народа пожаловалось, что неудобно наличие\отсутствие библиотек рядом с бинарником?)
0
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 14:13
ну вот честно скажи, тебе как удобно: один exe или с кишками?
С инсталлятором или хотя бы архивом - пофиг вообще.
1
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:14
Цитата Сообщение от Royal_X Посмотреть сообщение
ну вот честно скажи, тебе как удобно: один exe или с кишками?
Мне удобно через установщик или пакетный менеджер. Архив с файлом мне в высшей степени не удобен. А что там и в каком количестве установщик\пакетный менеджер притащит - мне фиолетово.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590
15.08.2025, 14:18  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Мне удобно через установщик
короче, ты любитель насилия над виндой: типа чтобы даже самая маленькая утилита поставлялась вместе с инсталлятором и чтобы она создавала ярлыки, в том числе в списке программ, деинсталлятор, внесла туеву кучу записей в реестре, создала по три службы, как для текущего пользователя, так и для всех, и чтобы следы программы оставались навсегда...
на линуксе и андроиде - это все понятно. Но винда - это винда: мусор остается после удаления...
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:20
Royal_X, в чём ты насилие тут видишь? Ты автор софтины. Не создавай ярылки, не вноси записи в реестр. Не создавай по три службы.

Из пальца высасываешь проблему?
0
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 14:21
Цитата Сообщение от Usaga Посмотреть сообщение
Из пальца высасываешь проблему?
Да, все стандартные доводы фанатов единых exe.
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:22
Кстати, что мне нужно сделать, чтобы увидеть этот самый мусор в винде и проблемы, которые он создаёт?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590
15.08.2025, 14:22  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Из пальца высасываешь проблему?
ну ты написал
Цитата Сообщение от Usaga Посмотреть сообщение
Мне удобно через установщик
ты же понимаешь, что если установщик просто установит в какую-нибудь папку без внесения записей в реестр и без создания деинсталлятора, то юзер не сможет вспомнить, куда он устанавливал, чтобы легко удалить. Все сводится к тому, что если будет установщик, то будет и все остальное) я, конечно, немного преувеличил в bin2cpp конвертер бинарных файлов в C++ файлы, то в целом идея, думаю, понятна
Винда не линукс, тут всего два варианта:
- установить в папку как portable
- установить установщиком и захламить систему
Конечно, есть магазин Windows, то он не популярен
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:24
Цитата Сообщение от Rius Посмотреть сообщение
Да, все стандартные доводы фанатов единых exe.
Ну да. Единственные адекватные доводы я видел от авторов .NET, когда -p:PublishSingleFile=true добавили. Мол, для оптимизации скорости запуска (что для жирных корпоративных приложений может быть важно). И от авторов Go, что мол, под контейнеры подгоняли, чтобы зависимостей в контейнере не надо было.

Остальное всё вот такое вот...
0
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 14:25
Цитата Сообщение от Usaga Посмотреть сообщение
Единственные адекватные доводы я видел от авторов .NET, когда -p:PublishSingleFile=true добавили.
Ещё был один, который хотел всё в одну либу паковать. Потому что программа-хост умела загружать плагины только в виде одного файла и никак иначе.

Все остальные единофайловцы только про крутизну пишут.
0
Эксперт .NET
 Аватар для Usaga
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,762
15.08.2025, 14:26
Цитата Сообщение от Royal_X Посмотреть сообщение
юзер не сможет вспомнить, куда он устанавливал
Ему это зачем знать? И какой ему вред от записи в реестре?
0
Эксперт .NET
 Аватар для Rius
13392 / 7847 / 1699
Регистрация: 25.05.2015
Сообщений: 23,858
Записей в блоге: 14
15.08.2025, 14:27
Цитата Сообщение от Royal_X Посмотреть сообщение
Винда не линукс, тут всего два варианта:
- установить в папку как portable
- установить установщиком и захламить систему
3. Сделать веб-приложение и открывать в браузере, вообще не "мусоря".
0
15.08.2025, 14:29

Не по теме:

Тема несколько свалилась в холивар, но инсталятор не обязательно создаёт записи в реестре, а один ехе также может насоздавать кучу мусора.

Я скорее хотел отметить что либы под боком надёжнее в некоторых сценариях. Цена такого удовольствия: трафик и место. Установка глобальных либ тоже имеет смысл, причём не только в плане экономии.

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6317 / 3041 / 1054
Регистрация: 01.06.2021
Сообщений: 11,590
15.08.2025, 14:30  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
И какой ему вред от записи в реестре?
есть два вида юзеров: те, которым плевать на чистоту в реестре (они просто периодически сносят винду и ставят заново), и, те которые следят, чтобы там не было мусора. Например, https://calibre-ebook.com/ очень хорошая прога. Но она оставляет столько мусора в реестре, причем хаотично, что все проги вместе взятые не оставляют...

Добавлено через 1 минуту
Цитата Сообщение от Wolfdp Посмотреть сообщение
но инсталятор не обязательно создаёт записи в реестре
записи, чтобы в списке программ появилось...
если установщик тупо для копирования, то есесена ничего не создает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.08.2025, 14:30

Конвертер бинарных данных
Хочу написать конвертер бинарного файла, который переводит его на читабельный вид. Есть описание...

Обработка текстовых файлов. Обработка бинарных файлов. Сериализация и десериализация объектов
Запросить у пользователя необходимость повторения работы программы. В случае если пользователь...

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

Какой путь бинарных файлов Апача в Ubuntu?
Zend Optimizer просит: какой путь бинарных файлов Апача в Ubuntu?

Обработка текстовых и бинарных файлов.
Текстовые №1. Создать два текстовых файла, слова, содержащиеся в обоих файлах одновременно, удалить...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Знание — сила: Доктрина интенциональности знаний против массовых профанаций
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru