Перенос Windowsприложений в cреду Linux
Перенос Windows-приложений в cреду Linux
Сложность переноса приложений из одной среды в другую зависит от сложности самого приложения. Если в приложении используются специфичные вызовы функций ядра одной из операционных систем, то перенос значительно затрудняется. Если же вы в своем приложении используете стандартные компоненты CLX, проблемы будут возникать значительно реже.
Итак, для переноса приложения из одной операционной системы в другую вы можете использовать три метода.
- Платформозависимый перенос. В этом случае вы перерабатываете значительную часть кода приложения для новой операционной системы. Благодаря этому приложение будет активизировать характерные для данной операционной системы вызовы функций ядра и, следовательно, работать значительно быстрее.
- Межплатформенный перенос. Подразумевает создание кода, который будет работоспособным как в одной, так и в другой операционной системе. В результате, несмотря на достаточную трудоемкость написания кода, получается приложение с единым интерфейсом, но разным содержанием.
- Эмулирование среды Windows. Данный метод является наиболее комплексным и дорогостоящим. Однако получившееся приложение для среды Linux будет выглядеть наиболее похожим на переносимое из Windows приложение. Недостатком является низкая скорость выполнения приложения при эмуляции.
Если вы переносите приложение под Linux с целью запускать его только в данной среде, вы можете удалить все специфичные для Windows команды из приложения. Если же вам нужно запускать приложение в обеих средах, вам придется модифицировать код или использовать директиву компилятора $IFDEF для указания блоков кода, специфичных для одной из сред (Linux или Windows).
Перечислим семь главных шагов, которые нужно выполнить для переноса приложения из Windows в Linux:
1. Перенесите все исходные файлы вашего Windows-приложения на компьютер с установленной средой Linux. Исходные файлы должны включать файлы модулей (pas), файл проекта (dpr) и файлы используемых пакетов (dpk). Кроме того, необходимо перенести файлы, связанные с файлом проекта: файлы форм (dfm), файлы ресурсов (res) и файлы опций проекта (dof). Если вы хотите откомпилировать файл только из командной строки, вам необходим файл конфигурации (cfg).
2. Если вы планируете использование совместных ресурсов для приложений Windows и Linux, переименуйте dfm файлы в файлы xfm, сохранив их названия (например, переименуйте unit1.dfm в unit1.xfm). Переименуйте ссылки на .dfm файлы в модулях приложения из {$R .dfm} в {$R .xfm}.
Примечаниe
Файлы dfm работают в среде Kylix, но после изменения могут и не работать в Delphi.
3. Смените все разделы uses с указанием правильных названий модулей Kylix (см. далее в этой главе).
4. Перепишите код, использующий специфические для Windows процедуры, чтобы сделать приложение более независимым от операционной системы. Сделайте это с помощью встроенных библиотек Kylix.
5. Найдите эквиваленты для команд, которые не поддерживаются в Linux. Используйте директиву компилятора $IFDEF (умеренно) для разграничения кода под Linux и Windows.
Например, вы можете для вашего межплатформенного приложения воспользоваться следующим кодом (листинг 21.1):