Обязательными зависимостями являются сама библиотека opengl и библиотека, нужная для создания окон и инициализации контекста. В windows - это winapi, в linux - x11 или wayland, в macos не знаю. Можно не писать под каждую платформу отдельный код и использовать для этого glfw или sdl, но тогда к зависимостям ещё и одна из этих библиотек добавится.
Или могу я пойти по пути?:
Можете, но это будет дольше.
Cмогу ли я уложиться в 1000kb?
Думаю, да. Тут ещё зависит, будете ли вы статическую компановку использовать, или динамическую
Антон, Зачем упаковывать ddl в exe? Вы можете поставлять свой бинарник вместе с ddl, сделав установщик, который будет вместе с вашим exe файлом ещё и dll в нужное место копировать. Или собрать программу статически, чтобы использовались статические, а не динамические версии библиотек, которые будут встроены в бинарник компановщиком
Василий Дёмин, Или собирать не gcc, а компилятором, который вместе со студией идёт. Но им лучше только c++ собирать, так как сишный компилятор microsoft не развивают
Антон, Если в другой системе cygwin не установлен, то придётся вместе с программой dll тащить всё равно. Или можно статический бинарник собрать, чтобы ddl были не нужны
Антон, Тогда в чём проблема загуглить реализацию base64, подключить её к коду и использовать? Преобразуете число в строку, прогоняете в base64 3 раза и записываете в файл
Эти вопросы говорят, что вы не читали ни одной книги по си. Рекомендую найти тут соответствующие вопросы, посмотреть книги по си в ответах и прочитать хотя бы одну.
Сначала нужно научиться на языке ассемблера программы писать. Далее берёшь книги по реверсингу и статьи по теме и смотришь, как это примерно делается и с помощью каких инструментов (под windows есть IDA pro, под линукс - radare2). Походу прочтения статей сам пытаешься среверсить что-нибудь, для этого можешь брать лёгкие задачи с сайта crackmes.one
А в c++ разве можно два раза деструктор вызвать? И какой смысл менять переменную объекта в деструкторе, если после его вызова объект перестанет существовать?
Обязательными зависимостями являются сама библиотека opengl и библиотека, нужная для создания окон и инициализации контекста. В windows - это winapi, в linux - x11 или wayland, в macos не знаю. Можно не писать под каждую платформу отдельный код и использовать для этого glfw или sdl, но тогда к зависимостям ещё и одна из этих библиотек добавится.
Можете, но это будет дольше.
Думаю, да. Тут ещё зависит, будете ли вы статическую компановку использовать, или динамическую