Использование
специальных директив
Использование директивы
компилятора $IFDEF
является достаточно разумным путем для разделения
кода Windows и Linux в вашем межплатформенном приложении. Тем не менее, использование
директивы $IFDEF
делает код приложения более трудным для понимания,
поэтому старайтесь применять эту директиву как можно реже.
Пользуясь директивой $IFDEF
,
следуйте нижеприведенным указаниям:
$IFDEF
без крайней необходимости. Эта директива применяется
в исходном файле только после компиляции;$IFDEF
в файлах пакетов (dpk). Создателям компонентов нужно разработать
два пакета для каждой из платформ без использования директивы $IFDEF;$IFDEF MSWINDOWS
для проверки того, что приложение запущено в
среде Windows. Используйте директиву $IFDEF WIN32
для определения
различных Windows-платформ, например 32- и 64-битную версии Windows;$IFDEF LINUX
для проверки того, что приложение запущено в среде
Linux;$IFNDEF/$ELSE
. Пользуйтесь положительными тестами
($IFDEF/$ELSE
) для лучшего понимания кода;$IFDEF MSWINDOWS
и $IFDEF LINUX
вместо
комбинаций $IFDEF
LINUX/$ELSE
или $IFDEF MSWINDOWS/$ELSE
. Приведем пример неосторожного
обращения с директивой $IFDEFF
(листинг 21.4).
Листинг 21.4.Неправильная
работа директивы $IFDEF
{$IFDEF WIN32}
{32-битный
код Windows размещаем здесь}
{$ELSE}
{16-битный
код Windows находится здесь} //!! По ошибке Linux может
// попробовать
выполнить этот код '!!
{$ENDIF}