1.2.25. $H или $LONGSTRINGS : Использовать AnsiStrings |
Вверх Предыдущий Следующий |
Если указана директива {$LONGSTRINGS ON}, то ключевое слово String (не длина спецификатора) будет обрабатываться как AnsiString, и компилятор будет обрабатывать соответствующую переменную как ansistring, и будет генерировать соответствующий код. Это переключатель связан с опцией командной строки -Sh. По умолчанию использование ansistrings отключено, что соответствует директиве {$H-}. Системный модуль откомпилирован без ansistrings, все его функции принимают аргументы shortstring. То же справедливо для всех модулей RTL, кроме модуля sysutils, который откомпилирован с ansistrings. Однако оператор {$MODE} по умолчанию влияет на значение директивы {$H}: директива {$MODE DELPHI} подразумевает включение AnsiString {$H+}, все другие режимы отключают AnsiString. В результате вы всегда должны помещать директиву {$H+} после директивы режима, если хотите включить AnsiString. Это поведение можно изменить, кроме некоторых старших версий Free Pascal. |