smigles Это называется Generics. Таким образом действительно можно писать код, не зависящий от типа переменных, но, если не ошибаюсь, этот код будет работать немного медленнее, чем исходный вариант с дублированием кода.
Interface: Дело в том, что таким образом вы не создали свой продукт, а просто хотите предоставить доступ третьим лицам к лицензионному компоненту (чужому продукту). Даже если вы внесёте какие-то изменения в функционал лицензионного компонента, а не просто завернёте его в API, это всё равно будет не ваш продукт.
Грань как раз и пролегает между определением, ваш это продукт или нет. Если вы сможете доказать в суде, что создали новый продукт, то можете распространять свою dll без всяких ограничений. Но если установят, что вы просто замаскировали чужой продукт под свой, то быть беде.
Interface: Такую dll вы можете сделать только для своего какого-то конкретного продукта и распространять вместе с ним. Но другие разработчики не смогут воспользоваться вашей dll в своих продуктах, пока они не купят соответствующую лицензию на Delphi. Т.е. работает схема "Разработчик с лицензией -> Пользователь ПО", но не "Разработчик с лицензией -> Разработчик без лицензии -> Пользователь".
uvelichitel: Имеет - fail2rest написан на go и в зависимостях там ещё пара либ этого же автора, в том числе и fail2go, которая как раз и зависит от sqlite3.
SquareWheel: Могу посоветовать вам попросить у автора этой штуки готовый бинарник для linux.
abcd0x00: Да, но это же не тех-задание и я не не подписывался сделать топикстартеру "хорошо". Просто подсказал, в каком направлении нужно двигаться - проблема-то не в больших/маленьких буквах, а в том, как строку в бинарь закодировать. Плюс, в реальной задаче ему может и lowercase сгодится.
abcd0x00: Ну, понятие красивости - относительное. Мне, например, такие функциональные однострочники не очень нравятся, а для топикстартера, подозреваю, так там вообще чёрная магия творится :)
Yippee-ki-yay: Вы ищете язык чтобы решить проблему или научиться программировать? На Delphi решить проблему проще всего. Но учить его чтобы потом найти работу, тут да, это не лучший вариант. Тут вперёд вырывается java, но для вашей задачи, наверное не лучшее решение - десктопный гуй + портативность, это не совсем про неё. А вот для Андроида, она в самый раз. Тут C# и рядом не стоял.
KashurinS: Это же консольное приложение и мы просто перенаправляем его вывод в PIPE, ну и читаем этот PIPE по мере поступления информации. Дальше вам остаётся только распарсить полученный текст.
Хотя, гораздо лучше, взять какой-нибудь компонент для работы с архивами, типа Abbrevia и читать cab без этих извращений с консольными утилитами.