![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Доброго времени суток! Как считать из объекта типа stringstream в буфер TCHAR при использовании опции проекта "Использовать Юникод кодировку"?
Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 03.01.2011
Сообщений: 49
|
![]()
Используй объекты для широких строк. Добавляй w спереди.
wstringstream s; |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
када то мудохолся с подобной темой. Не придумал ничего умнее топора:
Код:
Последний раз редактировалось _Bers; 02.06.2012 в 01:57. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Спасибо, _Bers! То что нужно!
Моя вина. В своём вопросе я забыл добавить, что и при использовании опции: "Использовать многобайтовую кодировку", тоже должно работать. Всё-равно спасибо! Такой вариант может пригодиться, плюсую! |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Вот такой вариант нашёл:
Код:
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]()
Там видишь, в чем сложность то: литерные константы в исходном коде виндузятные компили воспринимают исключительно как мультибайт (если ничего не путаю), что в условиях, когда нужно поддерживать юникод, вынуждает, нас пасти эти ситуации и юзать всякие макросы аля _T(), или L(), и тп.
Фейлы начинаются, когда хочется единообразно пихать в функцию и литерную константу, и готовый объект. Я привык к моральному std::string, и к тому, что char весит 1 байт, а не "хрен пойми чего в зависимости от чего-то там" Поэтому, решил минимизировать точки контроля над ситуаций непосредственно в исполняющие функции. А вот снаружи синтаксис должен быть стабилен и прост: Код:
А если он это не умеет, значит нужно вызывать такой механизм, который умеет. И сам будет всем рулить. А вот здесь очень доступно и замечательно описаны дрязги с юникодом под форточками: http://wm-help.net/books-online/prin.../59464-13.html |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
![]() Цитата:
![]() Однако деление на мультибайт/юникод критично только при дерганье модулей, которые взаимодействуют с системой (дергают winapi, либо готовят материалы для тех, кто будет дергать winapi). Моя идея заключается в том, что в рамках собственного приложения не используются никакие макросы вообще. Используется обычный std::string and char. мы не пишем вот так: Код:
Код:
Тогда получается: что внутри своего приложения чар стабильно весит 1 байт. А что именно будет скормлено winapi меня (моё приложение) вообще не заботит. Профит тут ещё в том, что используя стандартные std::string and char в коде целевого приложения, можно не просто обеспечить поддержку кодировок, но и совместимость кода msc/mingw/gcc То бишь, код, учитывающий политику Зла может взлететь и под Linux |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с созданием объекта своего типа,С# | roadzero | Помощь студентам | 4 | 04.04.2011 17:23 |
ошибка 1004 при удалении объекта типа Range | Red_Garry | Microsoft Office Excel | 2 | 26.02.2011 15:12 |
CLR. Ошибка C3918. Как вызвать из объекта обработчик, переданный родителю объекта от деда? | Stilet | Общие вопросы .NET | 0 | 15.01.2011 17:49 |
считать данные из переменной типа String | 1o1man | Помощь студентам | 13 | 17.04.2009 22:34 |
Преобразование типа объекта | Oburec | Общие вопросы Delphi | 4 | 12.04.2009 14:20 |