Free Pascal ANSI или Unicode?

В разработке приложение, которое полностью базируется на WinAPI функциях. API документация рекомендует использовать Unicode, (если я правильно понимаю, WinAPI использует Unicode UTF-16). Также сообщается о том, что некоторые новые функции поддерживают только Unicode.
Возник вопрос, бросить ANSI и перейти полость на Unicode (WideString, WideChar)? Какие "опасности" могут поджидать меня на пути перехода с ANSI на Unicode? Спасибо.
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Плавали, знаем. Долго видел на BCB6, а потом преобразовывал ANSI → UTF-16.
1. Раз у нас UTF-16, придётся усложнить работу с путями и прочим (например, сокращение строк). Раньше символ был один char, стало — один-два WideChar.
2. Где у нас низкоуровневые строки — придётся корректировать объёмы памяти. На всех языках, кроме Си и Си++, такого обычно мало: на Си нет своих строк, а в Си++ автодеструкторы.
3. Где у нас сериализация — придётся перекодировать. В ANSI адресуемая единица (байт) совпадает с символом текста, в Юникоде уже нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы