Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
116 / 106 / 51
Регистрация: 29.03.2016
Сообщений: 480

Wchar_t и unsigned wchar_t в windows

04.04.2016, 12:13. Показов 4032. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Печально, но факт:
wchar_t - 2 байта,
unsigned wchar_t - 4 байта

Вопрос1: используется ли unsigned wchar_t для хранения UNICODE-символов d windows?, и если да то..
Вопрос2: как будут размещаться байты при конвертировании char ('1') в unsigned wchar_t (00 00 00 31)?
Вопрос3: Почему эти 2 типа так отличаются?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.04.2016, 12:13
Ответы с готовыми решениями:

Почему const wchar_t* воспринимается как wchar_t* ?
Здравствуйте. Я написал вот так: const wchar_t* dir = directory.c_str(); StartModule(dir); и такая ошибка появляется : ...

Cannot convert from 'wchar_t' to 'const wchar_t *'
такой код, порылся в инете не помогло. ломать голову надоело может кто подскажет, буду благодарен. wchar_t * english = L"abvgdee...

Error C2664: невозможно преобразовать из "wchar_t" в "const wchar_t *"
Вот так работает: wchar_t buf; Edit_GetText(hE, buf, sizeof(buf)); if(buf) { wchar_t b; _itow_s(wcscspn(buf, &buf), b, 10); ...

22
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
28.10.2021, 20:17
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SmallEvil Посмотреть сообщение
но видимо он медом помазан
Это вообще категорически неверная трактовка моих слов.
Я вам говорю о том, что ваше суждение противоречит тому, как возможно пользоваться языком С++. Вы просто вводите самого себя в заблуждение. И это, в какой-то момент может привести к тому, что вы напишете неверную программу.
Вот иллюстрация того, о чем я говорю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <type_traits>
 
int main()
{
    std::cout << std::is_same<wchar_t, unsigned short>::value << '\n';
    std::cout << std::is_same<wchar_t, unsigned int>::value << '\n';
    std::cout << std::is_same<wchar_t, unsigned long>::value << '\n';
    std::cout << std::is_same<wchar_t, unsigned long long>::value << '\n';
    std::cout << std::is_same<wchar_t, short>::value << '\n';
    std::cout << std::is_same<wchar_t, int>::value << '\n';
    std::cout << std::is_same<wchar_t, long>::value << '\n';
    std::cout << std::is_same<wchar_t, long long>::value << '\n';
}
Этот код, согласно спецификации должен выводить нули.
Мы можем на это заложиться в некой логике и написать программу на основе этого поведения.
Вы же допускаете, что в какой-то момент может быть не ноль, ибо это же "алиас (помазанный медом)".
В чем же тут логика так считать?

Хорошо, вот пример попроще.
Вы читаете учебник по алгебре, и там написано, что 2+2=4. Но вы по какой-то причине с этим не согласны.
Ну хорошо, вы в принципе имеете на это право, и имеете право считать, что учебник по алгебре не "помазан медом".
Но в чем же тут логика?
0
28.10.2021, 20:41

Не по теме:

Критически малое количество людей может признавать свои ошибки.
Всегда проще уйти в агрессию.
Только сильный человек может сказать, - "да, я заблужался".
Словечки про "здравый смысл" и "логику" - это всего лишь словечки. Типа, вот есть правила дорожного движения, все по ним ездят. И потом находится один умный, и говорит про "здравый смысл", ну типа не согласен он с таким-то пунктом.
Он прав или нет? Может и прав, в целом. Но если он на экзамене по вождению это заявит, то нихрена не сдаст. Получается, что он не прав. Тобишь в какой системе отсчета ты находишься, надо уметь различать.

И тут похоже все так же. Никто не молится на стадарт (мне так кажется), но стандарт - это спецификация, по которой делают компилятор. И чтобы язык мог более-менее существовать нормально, компиляторы должны реализовать стандарт более-менее одинаково. А лучше когда полностью одинаково. Это насущная необходимость для языка, который стремится быть мультиплатформенным и широко используемым.
И когда тебе говорят, что "некая хрень - это бла-бла-бла" по стандарту, то это не мольбы на стандарт - а просто отражение действительности. Этим же тезисом руководствуются разрабы компилятора, они точно так же будут делать у себя. Получается, ты не поймешь как нормально юзать язык, если будешь думать как-то иначе.
И да, ведь может быть такое, чтоб прям в спецификации нарушен некий главный закон мироздания, и да, может оно и не правильно вообще. НО. Компилер-то писан по этому "нелогичному" документу. Вот и подумай, ты в какой системе отсчета, дорогой? В своей собственной или в общепринятой (пусть может быть и не логичной)?
Вот сильный человек может различить эти ситуации и понять с какой точки зрения, в какой системе отсчета он прав или не прав, а не идти рогом против этой системы.

0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13219 / 6851 / 1826
Регистрация: 18.10.2014
Сообщений: 17,375
28.10.2021, 20:52
Цитата Сообщение от SmallEvil Посмотреть сообщение
Не знаю чем для вас встроенный алиас отличается от рчуного, но видимо он медом помазан, и стандарт видно тоже.
То есть, леди и джентльмены, мы имеем честь наблюдать рождение очередного великого изобретения наших доморощенных крэкпот-теоретиков: феерической концепции "встроенного алиаса"!

Встречайте! Встроенный алиас!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2021, 20:52

CP886 в Multibyte (wchar_t) и BYTE в Multibyte (wchar_t)
Помогите разобраться с кодировками. Получаю из базы данных значения и при выводи их в EditControl все отлично, но если выводить данные в...

Error: cannot bind 'std::basic_ostream<wchar_t>' lvalue to 'std::basic_ostream<wchar_t>&&'|
Ругается на строку Log&lt;&lt;StripXML(__PRETTY_FUNCTION__)&lt;&lt;std::endl;. Функция такая: std::string StripXML ...

Wchar_t
подключаюсь к серверу. Присваиваю переменной типа string имя, const char* charName = _Name.c_str(); затем в цикле передаю серверу имя...

wchar_t
что ето за тип данних: wchar_t скок у нему байт??

wchar_t to LPCWSTR
Ругается, что text является неинициализированной локальной переменной #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru