Отправляет email-рассылки с помощью сервиса Sendsay

[prg] C/C++: wchar_t и Unicode

Приветствую всех.

Какое-то время назад в тифлокомпе проходила смежная тема, связанная с настройками
среды разработки. Обнаружилось, что ни тот, кто спрашивал, ни те, кто отвечали,
в вопросах использования wchar_t и Unicode в программах на C/C++ не сильны.
Если есть желающие обсудить эту тему и более-менее разобраться в ней, то предлагаю
ответить на следующие вопросы.
По ответам можно будет понять, требует ли тема развития или нет. Возможно, кто-то
ответит так замечательно, что и добавить будет нечего.
1. Почему (и в каких случаях) эти два строковых литерала не являются эквивалентными:
L"Привет, мужики!"
_T("Привет, мужики!")

2. Предложите правильные варианты записи нижеследующей строки и поясните их:

_putws( _T("Привет, мужики!") );

3. Что за тип LPTSTR и тип ли это?

4. Чем отличаются макроопределения _UNICODE и UNICODE?

Использовать интернет для поиска ответов не запрещается :-)

Успехов. Анатолий.

Ответить   "i_chay" Wed, 14 Mar 2012 16:14:48 +0400 (#2400010)

 

Ответы:

Добрый вечер, i_chay!
Вы писали в среда среда, 14 марта 2012 г.:

Ох, сейчас чего-нибудь наврём! :-)

Первый, принудительно строка в юникоде.
Но если в настройках среды юникод не выставлен, то выведется только "П".
А вот второй, помоему, принудительно строка в ascii.

Сказал же, сейчас навру.
Правильно предложить ума не хватает, но помоему мы пытаемся запихнуть в функцию,
понимающую юникод, строку ascii.

Кажется тип ascii.
LPWSTR - юникод.

Чесно презнаюсь, не знаю.
Я и так много на врал. :-)

Ответить   Sun, 18 Mar 2012 21:35:27 +0400 (#2404900)