Sergei I. Gorelkin писал(а):Компилятор скорее соберется, чем нет, а вот rtl - есть сомнения... там такой бардак творится... Короче, надо пробовать.
Компилятор без rtl не соберется 
 
Все собралось на ура, зависимость от oleaut32.dll осталась, но дизассемблирование показало, что работа с WideString идет так же как и с AnsiString.
Интересный факт: стало подругому работать преобразование AnsiString <> WideString - какая-то путаница с кодировкой. Интересно то, что обычно если исходник написан в cp1251 и пытаться делать writeln('Привет мир') - то на консоли будут кракозябры (т.к. используется досовская кодировка), а если сделать перенаправление вывода в файл, то в файле будет текст в исходной кодировке cp1251. После того, как закоментировал tf_winlikewidestring, вывод на консоль и в файл дают одинаковые кракозябры.
Ладно, надежность-стабильность важнее производительности
Добавлено:
Кракозябры одинаковые, т.к. все они из первой половины кодовой таблицы...
Добавлено:
Вчера обновлялся из svn, похоже кракозябры от туда, т.к. нормальная версия дала тот же результат, может теперь как в Linux нужно подключать отдельно WidestringManager?.. вечером буду разбираться...
Добавлено:
Нет, такое поведение еще и в 2.0.4
Никогда с таким не сталкивался, т.к. никогда не определял WideString констант с русским текстом.
- Код: Выделить всё
- procedure test_ansi(S: AnsiString);
 begin
 writeln(S);
 end;
 
 procedure test_wide(S: WideString);
 begin
 test_ansi(s);
 end;
 
 const
 S: WideString =  'Привет мир';
 
 begin
 test_wide(S);
 writeln('Привет мир');
 end.
Посмотрел как константа опредяется:
- Код: Выделить всё
- _$PROGRAM$_Ld1:
 DW   207,240,232,226,229,242,32,236,232,240,0
 
 т.е. считай тот же ansi (только первые 256 символов)