Приветствую.

Если это кому-то здесь ещё нужно.
Можно из ".dpr" получать ".exe", а затем конвертировать его с помощью exe2kos в ".kex".
Есть проблема, что размер получается больше, чем надо, это особенность работы exe2kos.
Но с помощью kpack это всё равно хорошо сжимается.
Есть такая штука "PE Tool" http://forum.cantorsys.com/viewtopic.php?id=25
По идее должно помочь использование "PE Tool" с ключом "-rebase 00000000", но для нуля оно почему-то не работает.
Я писал автору на майл, но возможно ему некогда, или сообщение не дошло, или попало в спам.
Вот продублирую его сюда:

Хотел с помощью Pet сделать "-rebase 00000000" для сборки приложения под KolibriOS с помощью exe2kos.
Но Pet не хочет делать "-rebase 00000000". Вроде бы в исходнике Pet есть такая проверка, но с чем это связано - не понятно.

То есть, я хочу сделать так: .dpr-->dcc32-->EXE-->pet-->exe2kos-->KEX
В принципе и так работает, но размер получается больше, хотя там просто нули, и это сжимается упаковщиком, но лишнюю память занимает.

Я сейчас использую минимальный system+sysinit, хотя, конечно, для полноценной работы этого не достаточно.

Если интересно, то вот такой пример:

Выводит в консоль полный путь к файлу, параметры командной строки, текущую директорию.
Устанавливает директорию программы в качестве текущей(SetCurrentDirectory).
Выводит размер файла с программой в байтах.
Создаёт в папке с программой новую папку(CreateDirectory) "NewFolder" и копирует(ReadFile+WriteFile) туда файл с программой.
В самой ОС работает, а под KlbrInWin глюк, похоже не верно обрабатывается текущая директория.

make(Test).bat чтобы собрать этот пример.

Test_Delphi7_dpr_exe2kos.7z

system+sysinit используются минимальные, если что-то нужно не Windows\Linux специфичное, то копируйте из оригинала "Borland\Source\Rtl\Sys\System.pas" и  "Borland\Source\Rtl\Sys\Sysinit.pas"

Если кому будет интересно, то могу продолжить.

Отредактировано 0CodErr (2019-06-26 10:54:20)