| 
 
 
Особенности программирования для Linux
 
 
Операционные системы Windows и Linux имеют достаточно серьезных различий, чтобы сделать кроссплатформенную разработку делом сложным и кропотливым. В первую очередь необходимо хорошо знать обе операционные системы и иметь опыт работы с ними.
 
Очевидно, что создание исходного кода для кроссплатформенных приложений — это трудоемкий процесс, который усложняется по мере использования специфических возможностей операционных систем. Простейшим путем в данном случае будет применение только стандартных свойств и методов компонентов CLX. Но, к сожалению, такой путь возможен для сравнительно несложных приложений.
 
К примеру, большинство приложений имеют функции для работы с файлами. Файловые системы Windows и Linux отличаются настолько, что кроссплатформенная реализация любых мало-мальски сложных операций с файлами требует серьезного внимания и усилий.
 
Linux чувствительна к регистру символов в именах файлов и путях, поэтому не стоит использовать в исходном коде имена файлов напрямую, а при необходимости делать это нужно аккуратно. Во многих компонентах для решения проблемы заглавных и строчных букв можно использовать свойство
 
property CaseSensitive: Boolean;
 
После присвоения свойству значения  True компонент производит все строковые операции с учетом регистра символов.
 
Для формирования полного пути файла используйте константы из модуля
SysUtils. Это  PathDelim (символ разделителя каталогов в пути файла),
 DriveDelim (символ логического диска),
 pathsep (символ разделителя между несколькими путями файлов в одной строке).
 
При работе с текстовыми файлами необходимо помнить о различии управляющих символов в Windows и Linux. Для обозначения конца строки в Windows используются символы CR/LF, а в Linux — только символ LF. В Windows окончание текста определяется символом Ctrl-Z, а в Linux — просто концом файла.
 
Так как в Linux отсутствует системный реестр, то для сохранения настроек приложения используйте класс
TMeminiFile, обеспечивающий сохранение переменных среды в INI-файле.
 
При создании кроссплатформенных приложений желательно использовать только свойства и методы классов CLX. В библиотеке CLX также доступны для применения такие важные для написания бизнес-
логики приложения классы, как TList, TStringList, TCollection, TAction
и др.
 
Если это ограничение является слишком жестким, и в программе требуется использовать функции системных API, применяйте директивы условного перехода:
 
{$IFDEF MSWINDOWS}
 
{код для Windows}
 
 {$ENDIF}
 
{$IFDEF LINUX}
 
{код для Linux}
 
 {$ENDIF}
 
Для определения исходного кода Windows применяйте константу
MSWINDOWS, и не используйте константу WIN32, т. к. все еще есть код
WIN32 и никто не может поручиться, что вам не понадобится константа
 WIN64 для соответствующего кода.
 
 
 |