Форум программистов, компьютерный форум, киберфорум
Проекты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601

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

14.08.2025, 23:38. Показов 5285. Ответов 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
13405 / 7858 / 1701
Регистрация: 25.05.2015
Сообщений: 23,870
Записей в блоге: 14
15.08.2025, 14:31
Студворк — интернет-сервис помощи студентам
Удаляй через revo uninstaller.
0
15.08.2025, 14:32

Не по теме:

Насчёт вариантов установки, есть инстал в appdata для конкретного юзера. Там на уровне прав доступа нельзя сделать иначе.

0
Эксперт .NET
 Аватар для Usaga
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
15.08.2025, 14:36
Royal_X, ты можешь обрисовать проблемы, которые для меня создают записи в реестре?

"Мусор" - значит что-то вредное. Вред как-то проявляется. Как я его могу увидеть? Правда, Win98 реально хламом была. WinXP приходилось донастраивать отключая службы. Но десятку и Win11 я ни разу не переустанавливал ни на домашних машинах, ни на рабочих. Не было нужды.

Как мне увидеть вред "мусора"?

Добавлено через 1 минуту
Цитата Сообщение от Royal_X Посмотреть сообщение
если установщик тупо для копирования, то есесена ничего не создает
Кто мешает именно так и сделать? Я кучу разного консольного ПО так поставил. И мне всё равно статически оно всё слинковано или нет. Я даже не уверен, куда оно поставилось...

Добавлено через 2 минуты
Кстати, интересный момент обозначился в нашей беседе. Получается, что в винде, если установщик пытается сохранить некую служебную информацию для отката операции установки, то это "мусор", но тоже самое действие в Linux от пакетного менеджера - норм и так и надо?..

Мне кажется, или тут пахнет двойными стандартами?..
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 14:37  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
ты можешь обрисовать проблемы, которые для меня создают записи в реестре?
самый банальный пример: антивирус периодически сканирует реестр, если там много записей, значит и сканирование будет долгим, а значит ресурсы компа будут использоваться антивирусом чуть дольше
другой пример - это изнасилование файловых ассоциаций через реестр, создание ассоциаций на форматы файлов, которые ни одна прога не открывает, или создание в списке "Открыть с помощью" записей программ, но при нажатии на которые выводится, что такой проги нет. Исправляется все это только через реестр (через параметры не получится - там только можно переопределить ассоциации ).
0
Эксперт .NET
 Аватар для Usaga
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
15.08.2025, 14:39
Royal_X, но я ничего такого не вижу, ни дома ни на работе...

Что мне нужно сделать, чтобы это воспроизвелось?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 14:40  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Что мне нужно сделать, чтобы это воспроизвелось?
установить программу, которая мусорит в системе
0
Эксперт .NET
 Аватар для Usaga
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
15.08.2025, 14:44
Royal_X, поставил это https://calibre-ebook.com/download_windows. Интерфейсу приложения такой себе, будто ребёнок проектировал. Но работает. Система не тормозит. Что нужно сделать, чтобы начала?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 14:48  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
Тема несколько свалилась в холивар
Давайте тогда закончим холливар.
Конкретно для сабжа не вижу смысла в установщике и внесения в список программ винды. Ведь это утилита для разработки. Представьте, что было бы, если например все отдельные утилиты из VS 2022 появились в списке программ...

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Интерфейсу приложения такой себе, будто ребёнок проектировал.
но это самый лучший редактор (и даже читалка) epub файлов на винде. Автор просто программист, а не дизайнер. А может даже ребенок, хз
0
Эксперт .NET
 Аватар для Usaga
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
15.08.2025, 15:02
Цитата Сообщение от Royal_X Посмотреть сообщение
но это самый лучший редактор (и даже читалка) epub файлов на винде. Автор просто программист, а не дизайнер. А может даже ребенок, хз
Это никак не пересекается с тем утверждением, что оно засирает реестр, а это в свою очередь, начнём тормозить систему.
0
Software Engineer
 Аватар для Custos
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
15.08.2025, 19:15
Цитата Сообщение от Royal_X Посмотреть сообщение
На винде с ними только одни проблемы из-за несоответствия версий dll.
В реальности всё в точности до наоборот.
Линуксовский ABI - это боль и страдания: https://habr.com/ru/articles/893720/
Попробуйте распространять какое-то нативное приложение среди линукс юзеров.
Поймать условный Error /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found запуская приложение на "соседних" версиях линукс дистрибутива - обычное дело.
При этом на последней винде спокойно запускаются большинство приложений собранных более 20 лет назад еще под Windows XP. А множество собранных сейчас приложений будут без проблем работать на Windows 7, которая вышла 16 лет назад (даже если сам разработчик приложения против этого: http://cracklab.team/index.php?threads/1037/ )
Как бы кому не нравился дизайн потрохов Windows, но ABI совместимость - мое почтение.

Добавлено через 7 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
Но когда делаю на Qt, то я всегда использую динамическую линковку, чтобы не нарушать лицензию, например
Цитата Сообщение от Royal_X Посмотреть сообщение
ну вот честно скажи, тебе как удобно: один exe или с кишками?
Вы же в курсе, что есть инструменты, которые позволяют запаковать все dll, которые лежат в папке с приложением, в exe ?
Формально Вы ничего не нарушили, приложение распространяется с dll. А вот как они подгружаются в приложение, если мне не изменяет память, лицензия Qt не регулирует.

Добавлено через 19 минут
Цитата Сообщение от Custos Посмотреть сообщение
Формально Вы ничего не нарушили, приложение распространяется с dll. А вот как они подгружаются в приложение, если мне не изменяет память, лицензия Qt не регулирует.
А нет, нельзя. Ради интереса проверил, там одно из требований: "Пользователь может заменить DLL/so на свою сборку Qt"
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 21:18  [ТС]
Custos, мою программу на Qt однажды даже удалили из Sourceforge, потому что я не выложил исходники. Конечно, там у них есть требование, что в разделе Open Source Software можно публиковать только в случае предоставления исходников. Но обычно никто не проверяет это. Многие публикуют программы без сорцов. И я вот тоже так делаю. Одну программу на wxWidgets и еще одну программу на Qt пропустили. Но вот недавно публиковал еще одну на Qt, они удалили. Видимо, у них выборочная проверка. Проблема еще в том, что у этой программы в названии упоминалось Qt, что возможно привлекло к себе внимание администрации сайта. Они боятся Qt. Ведь, по бесплатной лицензии Qt нужно собирать с динамической линковкой (я это условие выполнил), а также нужно обязательно использовать фрейворк для опенсорный разработки по одной из этих лицензий: GPL 3, GPL 2 and GPL 3. Наверное, из-за этого к Qt всегда пристальное внимание со стороны Sourceforge.
Интересно, а что если публиковать программу на Qt и выложить какие-то мусорные исходники. Никто ж не будет вникать в код. Обычно они проверяют в первые дни и если нет сорцов, то на почту приходит письмо, в котором написано, что они дают 3 дня на добавление исходников, иначе они удаляют. После проверки можно удалить мусорные сорцы.
0
Эксперт .NET
 Аватар для Rius
13405 / 7858 / 1701
Регистрация: 25.05.2015
Сообщений: 23,870
Записей в блоге: 14
15.08.2025, 21:53
Цитата Сообщение от Royal_X Посмотреть сообщение
Ведь, по бесплатной лицензии Qt нужно собирать с динамической
Нет.

Можно выкладывать ПО на Qt без исходников, если юзер может использовать его с другой версией фреймворка. Это как поставка динамической сборки, так и поставка в виде объектных файлов, достаточных для сборки рабочего ПО (с другой версией фреймворка).

Бесплатно в статической сборке может поставляться ПО с открытыми исходниками.
Платно - и с закрытыми.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 22:15  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Можно выкладывать ПО на Qt без исходников, если юзер может использовать его с другой версией фреймворка. Это как поставка динамической сборки, так и поставка в виде объектных файлов, достаточных для сборки рабочего ПО (с другой версией фреймворка).
это только LGPL

но бесплатный Qt имеет разные лицензии, и нужно проверять по каждому модулю отдельно

When selecting an open source license for your project, you contribute to free and open source software development by using Qt under any of the following licenses: LGPL version 3, GPL version 2 and GPL version 3.
т.е. все тобою написанное применило лишь к одной из этих лицензий

А вот по GPL

All users have the rights to obtain, modify and redistribute the full source code of your application.

А теперь читай это

Please be advised that some parts of Qt are only provided under GPL for open source users, not under LGPL.

т.е. тут нужно еще разбираться, какие модули LGPL, а какие GPL. И вот трюк с объектными файлами сработает только для для LGPL.

Например, если ты используешь Qt Charts, то забудь об LGPL

Qt Charts is available under commercial licenses from The Qt Company. In addition, it is available under the GNU General Public License, version 3.
Моя прога, которую удалили, как раз использовала Qt Charts. Там только GPL. А это означает, что в бесплатной версии Qt ты должен полностью открыть код своей проги, потому что

All users have the rights to obtain, modify and redistribute the full source code of your application.
0
Эксперт .NET
 Аватар для Rius
13405 / 7858 / 1701
Регистрация: 25.05.2015
Сообщений: 23,870
Записей в блоге: 14
15.08.2025, 22:32
Вот именно:
Цитата Сообщение от Royal_X Посмотреть сообщение
some parts
А не всё подряд.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 22:43  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
не всё подряд.
конечно, не все подряд. Более выгодная лицензия это LGPL. Она доступна для многих модулей.

Но вот Qt Charts, Qt Graphs, Qt HTTP Server, Qt Network Authorization, Qt Virtual Keyboard и некоторые другие только GPL

И вот трюк с объектными файлами прокатит только для LGPL. Хотя, не представляю, какой чикатила будет так делать.

Короче, ребятки, то что выделено красным, никогда не используйте. А то придет некто, и попросит показать ему полный код проги.
0
Эксперт .NET
 Аватар для Rius
13405 / 7858 / 1701
Регистрация: 25.05.2015
Сообщений: 23,870
Записей в блоге: 14
15.08.2025, 22:47
Кототрому очень хочется и рыбку съесть, и косточкой не подавиться
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
15.08.2025, 22:51  [ТС]
Хорошо, что мой конвертер написан на wxWidgets
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
18.11.2025, 13:00
Цитата Сообщение от Royal_X Посмотреть сообщение
bin2cpp конвертер бинарных файлов в C++ файлы
кратко так:
1. данная фича это фетишь.
2. у мя сделано лучше.
3. матчасть(со второй половины).
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
18.11.2025, 13:10  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
у мя сделано лучше.
чтобы давать оценку, нужно сперва же видеть код. Ты мой код не видишь, поскольку он закрыт. Я вот твой вижу, и могу сказать, что твой не лучше.

Тот код, что выложен на гитхабе, это просто пустышка-прототип* для консольной версии. Моя настоящая программа - это та, что с GUI и там абсолютно другой код. Ты сам можешь удостовериться в этом, сравнив скорость конвертирования консольной версии программы и версии с графическим интерфейсом.

Цитата Сообщение от XLAT Посмотреть сообщение
3. матчасть(со второй половины).
бесполезный мусор ИИ, по крайней мере, ничего нового


*
Пустышка с открытым кодом нужна для публикации программы на сайтах, где программы проходят модерацию только в случае открытия кода.
0
Just Do It!
 Аватар для XLAT
4220 / 2683 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
18.11.2025, 13:12
Цитата Сообщение от Royal_X Посмотреть сообщение
Тот код,
Проблема не в коде.
Проблема в том, что тыя страдаем хернёй

в то время, когда космические корабли бороздят просторы Вселенной....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.11.2025, 13:12

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru