Написание переносимого кода



Написание переносимого кода

Для создания кроссплатформенного приложения следуйте приведенным ниже советам:

  • сократите вызов специфичных функций API Win32 или Linux или откажитесь от него совсем, используйте вместо этого методы CLX;
  • устраните конструкции PostMessage и SendMessage внутри приложения;
  • используйте объект TMemIniFile вместо TregIniFile;
  • обращайте внимание на регистр символов при наименовании файлов или каталогов;
  • откажитесь от кода ассемблера TASM (ассемблер GNU не поддерживает синтаксис TASM);
  • попробуйте написать код, использующий платформонезависимые библиотеки и константы, находящиеся в модулях System, SysUtils и других модулях, одинаковых для обеих платформ.

Приведем пример, который позволяет использовать многобайтные символы для обеих платформ (Windows и Linux). Среда Windows традиционно сопоставляет только два байта каждому многобайтному символу. В Linux многобайтная кодировка символов может содержать намного больше байтов на один символ (до шести байтов в кодировке UTF-8). Обе платформы могут использовать одинаковую кодировку с помощью функции StrNextChar, находящейся в модуле SysUtils. В листинге 21.2 приведен код для среды Windows.



Содержание раздела