Здравствуйте, aik, Вы писали:
aik>В шрифте заданы отображения для символом с кодами. Фонты — они сразу юникодные, по крайней мере, TrueType. Считай, что массив такой, индекс в массиве — это 2-байтовый код символа.
aik>Если ты выводишь ANSI: система видит байт, знает локаль, получает из байта юникодный символ, видит фонт и выковыривает из фонта по юникодному символу его отображение и рисует.
А>>>>7) Например, я написал в программе MessageBoxA("HelloWorld"). Эта Строка будет нормально отображаться под любыми виндами с любым языком? У китайцев будет? А если написал MessageBoxW("HelloWorld")??
aik>>>На латинице — будет, всегда. На китайском — тебе придется руками заделать константную строку в uft8, затем (если win9x) вызвать MessageBoxA, либо (в winnt) MultiByteStringToWideCharString(uft8->unicode) MessageBoxW. Или поместить строку в ресурс, там все строки в юникоде, только страну не перепутай, потому что RC скрипт — все равно ANSI и его надо корректно конвертить в unicode.
M>>Опять непонятно. Можно чуть-чуть псевдокода?
aik>Что именно непонятно то? Как строку в ресурс положить?
Так ведь неизвестно где будет программа запускаться. Все случаи на каждую сточку чтьоли разбирать?
И что значит "На латинице — будет, всегда. На китайском..." Я спрашивал именно про "HelloWorld". Она на английском. А что имеется ввиду "На китайском...."?