Re[2]: ЮНИКОД «за спиной»
От: vg_123  
Дата: 25.04.04 00:48
Оценка:
Здравствуйте, Reyst, Вы писали:

R>Здравствуйте, vg_123, Вы писали:


_>>В коде ниже UNICODE-проекта не делается преобразования строки при помощи MuliByteToWideChar. При копиляции в VC++ 7.0, при дефолтовых региональных настройках Russian XP (eng.) – имеем нормальные русские символы:



_>>
_>>            DrawText (hdc, _T("Привет") , -1, &Rect,
_>>


_>>Как такое возможно? Кто выполняет эти преобразования? Что происходит с памятью, выделенной для строки?


R>Строка константная, "в товарный вид" приводится во время компиляции.

R>Пять минут назад был топик про макрос _T(), который этим и занимается.

_T — говорит о том, что это "широкая", L строка при #define UNICODE.
Сам он не занимается конвертацией симоволов строки из MBCS в UNICODE.
Есть подозрение, что IDE VC++, редактор С++ кода используют MBCS.
Пост был про то, что при региональных настройках OS — Russian это позволяет компилиру
правильно создать строку UNICODE. Если бы региональные настройки были б English,
то вместо русского "Привет" мы б увидели закорюки.

ПС. Наверное в этом дело. Если я не прав — поправьте, плз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.