Ism писал(а):Работайте только в utf8 даже если для этого нужно явно преобразовывать
Что для этого нужно менять? Проект большой.
Сейчас происходит следующее:
1) Тип string равносилен ansistring благодаря {H+}.
2) Переменная folder получает ansi-значение, потому что цепочка вызовов extractfilepath(...) в конце обращается к shortstring функции system.ParamStr.
3) Вызов FileExists отрабатывает корректно, потому что ожидает анси-строку и ссылается на неюникодную версию WINAPI без -w. Кстати, почему?
4) Далее. Вызов LoadFromFile в exe-шнике, откомпилированном версией 0.9.30, приводит к созданию объекта типа TFILESTREAM.
4.1) В новой версии Лазаруса создаётся объект TFILESTREAMUTF8, который принимает на вход нашу ansi-строку Folder и обламывается.
Они поменяли внутреннюю логику работы некоторых базовых классов. Где найти список, и что теперь должен поменять я?
Безымянный 1.png
На скриншоте - как работает старая версия.
Добавлено спустя 1 час 11 минут 2 секунды:Может быть, моя IDE скомпилирована с ключом -
dEnableUTF8RTL? Правильно я понимаю, что когда FPC 2.7.1 с поддержкой этого ключа войдёт в состав IDE, проблема разрешится сама собой, и все системные вызовы API будут -w? А до этого момента - костылить с AnsiToUTF8 или отсиживаться на 0.9?
Добавлено спустя 37 минут 38 секунд:К сожалению. мат на форуме запрещён. Поэтому вот вам картинка.

А что бы вы сделали с разработчиками, у которых
TMemo.Lines.SaveToFile() требует юникода, а TStringList.SaveToFile() требует ANSI?Я начинаю понимать, кажется, за что страдал Лазарь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.