Написание переносимого кода
Написание переносимого кода
Для создания кроссплатформенного приложения следуйте приведенным ниже советам:
- сократите вызов специфичных функций API Win32 или Linux или откажитесь от него совсем, используйте вместо этого методы CLX;
- устраните конструкции PostMessage и SendMessage внутри приложения;
- используйте объект TMemIniFile вместо TregIniFile;
- обращайте внимание на регистр символов при наименовании файлов или каталогов;
- откажитесь от кода ассемблера TASM (ассемблер GNU не поддерживает синтаксис TASM);
- попробуйте написать код, использующий платформонезависимые библиотеки и константы, находящиеся в модулях System, SysUtils и других модулях, одинаковых для обеих платформ.
Приведем пример, который позволяет использовать многобайтные символы для обеих платформ (Windows и Linux). Среда Windows традиционно сопоставляет только два байта каждому многобайтному символу. В Linux многобайтная кодировка символов может содержать намного больше байтов на один символ (до шести байтов в кодировке UTF-8). Обе платформы могут использовать одинаковую кодировку с помощью функции StrNextChar, находящейся в модуле SysUtils. В листинге 21.2 приведен код для среды Windows.