андроид?
Конечно можно. Программа это просто набор инструкций по пользованию объектами. Буквально вот так - "возьми этот объект, еще возьми этот объект, положи один в другой, дерни за рычаг, возьми что получилось" Если ты используешь какие то объекты, которых нет в стандартной библиотеке, то значит тебе надо просто подключить библиотеки и использовать заранее созданные кем то классы. Для этого эти библиотеки нужны или в исходном коде или уже скоппилированные (но для платформы на которой ты хочешь их использовать!), то есть библиотеки от виндоус в скомпилированном виде не подойдут для линковки в андроид. Заголовочные файлы тоже нужны от этих библиотек. Ты все это потом компилируешь при помощи Android NDK. Еще раз учти, что если нужна какая то библиотека под андроид узнай есть ли исходный код оной или если нет кода, есть ли она в бинарном виде и заголовочный файл к ней. Еще добавлю. Если не нашел, то возможно она есть в менеджере пакетов vcpkg!
Ага. Если только программа не говорит: вызови виндовую функцию CreateProcessEx.....
а почему программа должна это говорить, если в коде это отсутствует?
А я что, код вижу? Я лишь намекнул, что не любую программу можно перенести. Программа может использовать что-то специфичное из ОС.
Ну это и так наверно должно быть понятно
Мне всегда было интересно, как кроссплатформенная библиотека узнает, какую функцию ОС вызвать (допустим, на линукс у нее одно название, а у виндоус другое), к примеру, у кроссплатформенной библиотеки есть функция clearscreen(), а внутри этой функции она в завимисимости от того какая ОС, вызывает специфичную для конкретной ОС функцию. Вот как она узнает какая ОС? Ведь смотрите, чтобы узнать ОС, нужно опять же вызвать специфичную для каждой ОС функцию. Я сомневаюсь, что во всех ОС есть какая то общая функция с одинаковым именем, возвращающая тип ОС.
В кроссплатформенной библиотеке есть условная компиляция
То есть если она скопилирована для линукс, то в ней уже будет зашита правильная функция (допустим clear_screen_linux() внутри вызываемой извне функции clearscreen() ? Грубо говоря при компиляции для линукс ставят дефайн что это линукс ? И препроцессор уже вставляет функцию для линукс?
Вообще бинарник под линукс без специальных извращений на другой ОС даже не запустится, так что такой выбор нужной функции на этапе компиляции вполне оправдан
Это не очень просто, но можно
Обсуждают сегодня