Григорьев Антон Борисович
Шрифт:
Разработчики Delphi не стали полностью копировать этот механизм, видимо, этому помешала существующая в Delphi раздельная компиляция модулей, из-за которой невозможно определением одного символа заставить все модули перекомпилироваться (тем более что часть из них может не иметь исходных кодов). Поэтому в Delphi нет типа, аналогичного
Рассмотрим, как та же функция
Видно, что функция
Структуры, содержащие строковые данные, также имеют ANSI- и Unicode-вариант. Например, структура
1.1.13. Строки в Windows API
Unicode в Delphi встречается редко, т.к. программы, использующие эту кодировку, не работают в Windows 9x/МЕ. Библиотека VCL также игнорирует возможность работы с Unicode, ограничиваясь ANSI. Поэтому далее мы будем говорить только об ANSI. С кодировкой Unicode можно работать аналогично, заменив
Для работы со строками в Delphi наиболее распространен тип
Механизм выделения и освобождения памяти и подсчета ссылок прозрачен для программы. От разработчика требуется только не вмешиваться в его работу с помощью низкоуровневых операций с указателями, чтобы менеджер памяти не запутался.
В отличие от
Функции Windows API не поддерживают тип
Для работы с нуль-терминированными строками в Delphi обычно служит тип
Строку, на которую указывает