Здравствуйте, 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,
то вместо русского "Привет" мы б увидели закорюки.
ПС. Наверное в этом дело. Если я не прав — поправьте, плз.