[prg] C/C++: wchar_t и Unicode
Приветствую всех.
Какое-то время назад в тифлокомпе проходила смежная тема, связанная с настройками
среды разработки. Обнаружилось, что ни тот, кто спрашивал, ни те, кто отвечали,
в вопросах использования wchar_t и Unicode в программах на C/C++ не сильны.
Если есть желающие обсудить эту тему и более-менее разобраться в ней, то предлагаю
ответить на следующие вопросы.
По ответам можно будет понять, требует ли тема развития или нет. Возможно, кто-то
ответит так замечательно, что и добавить будет нечего.
1. Почему (и в каких случаях) эти два строковых литерала не являются эквивалентными:
L"Привет, мужики!"
_T("Привет, мужики!")
2. Предложите правильные варианты записи нижеследующей строки и поясните их:
_putws( _T("Привет, мужики!") );
3. Что за тип LPTSTR и тип ли это?
4. Чем отличаются макроопределения _UNICODE и UNICODE?
Использовать интернет для поиска ответов не запрещается :-)
Успехов. Анатолий.
Добрый вечер, i_chay!
Вы писали в среда среда, 14 марта 2012 г.:
Ох, сейчас чего-нибудь наврём! :-)
Первый, принудительно строка в юникоде.
Но если в настройках среды юникод не выставлен, то выведется только "П".
А вот второй, помоему, принудительно строка в ascii.
Сказал же, сейчас навру.
Правильно предложить ума не хватает, но помоему мы пытаемся запихнуть в функцию,
понимающую юникод, строку ascii.
Кажется тип ascii.
LPWSTR - юникод.
Чесно презнаюсь, не знаю.
Я и так много на врал. :-)