Здравствуйте, Desert_Sun, Вы писали:
D_S> Уважаемые господа!
D_S>Объясните наконец глупому человеку, в каком случае нужны конструкции типа
D_S>#ifdef UNICODE
D_S>... используем одни типы переменных и функции, для юникода...
D_S>#else
D_S>... используем соответственно другие...
D_S>Т.е. в каких случаях в системе определен Unicode, а в каких нет.
D_S>Кроме того, при программировании под XP можно ли считать, что он в любом случае определен?
D_S>Заранее огромное спасибо.
Юникод не может быть определен или не определен в системе, его поддержка может быть реализована либо не реализована. Программа, собранная с определением UNICODE, т.е.
// для Windows API
#define UNICODE
// для СRT
#define _UNICODE
в Win9x работать не будет, т.к. Win9x не поддерживает Unicode. А в WinNT будет работать на ура, поскольку Unicode является "родным" для NT.
В случае, когда прорамма собрана без определения UNICODE, работать она будет как под 9х, так и под NT.
В NT, функции, работающие с ANSI строками (имена функций заканчиваются на A), являются просто "заглушками", которые конфертируют строки в Unicode и вызывают соответствующие аналоги (имена заканчиваются на W)