WideCharToMultiByte()
От: malloc  
Дата: 13.08.01 14:21
Оценка:
как правильно перекодировать юникодовый текст с помощью %subj%?
строка вызова у меня такая:
WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);
Re: WideCharToMultiByte()
От: Igor Soukhov  
Дата: 13.08.01 15:50
Оценка:
Здравствуйте malloc, вы писали:

M>как правильно перекодировать юникодовый текст с помощью %subj%?

M>строка вызова у меня такая:
M>WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);

а нельзя эти ужасы (тем более когда пользуешь дефолтовые значения) заменить на

#include <atlbase.h>

USES_CONVERSION;

и маленькие-приятные макросы с названиями типа A2W, A2T, T2A, итд...


Igor
* thriving in a production environment *
Re[2]: WideCharToMultiByte()
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.08.01 20:04
Оценка:
Здравствуйте Igor Soukhov, вы писали:

Присоеденяюсь.Но, хочу дать свой коментарий.

Иногда эти макросы не пригодны. Дело в том, что они занимают память в секе. Когда строки могут быть действительно большими, лучше испльзовать функции на которых они базируются (при этом выделять память вручную) или испльзовать наш CascStr в нем все сделано чесно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: WideCharToMultiByte()
От: Alex Ostapenko Россия  
Дата: 14.08.01 07:21
Оценка:
Здравствуйте Igor Soukhov, вы писали:

IS>Здравствуйте malloc, вы писали:


M>>как правильно перекодировать юникодовый текст с помощью %subj%?

M>>строка вызова у меня такая:
M>>WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);

IS>#include <atlbase.h>


IS>USES_CONVERSION;


IS>и маленькие-приятные макросы с названиями типа A2W, A2T, T2A, итд...


Ну да, а как им задать кодовую страницу? Например, мне нужно перекодировать из UTF7 в Unicode или наоборот.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[3]: WideCharToMultiByte()
От: Igor Soukhov  
Дата: 14.08.01 07:44
Оценка:
Здравствуйте Alex Ostapenko, вы писали:

AO>Здравствуйте Igor Soukhov, вы писали:


IS>>Здравствуйте malloc, вы писали:


M>>>как правильно перекодировать юникодовый текст с помощью %subj%?

M>>>строка вызова у меня такая:
M>>>WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);

IS>>#include <atlbase.h>


IS>>USES_CONVERSION;


IS>>и маленькие-приятные макросы с названиями типа A2W, A2T, T2A, итд...


AO>Ну да, а как им задать кодовую страницу? Например, мне нужно перекодировать из UTF7 в Unicode или наоборот.

Да ну =) ... я говорил про конкретный пример.

Igor
* thriving in a production environment *
Re[2]: WideCharToMultiByte()
От: malloc  
Дата: 14.08.01 09:41
Оценка:
Здравствуйте Igor Soukhov, вы писали:

IS>Здравствуйте malloc, вы писали:


M>>как правильно перекодировать юникодовый текст с помощью %subj%?

M>>строка вызова у меня такая:
M>>WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);

IS>а нельзя эти ужасы (тем более когда пользуешь дефолтовые значения) заменить на

IS>и маленькие-приятные макросы с названиями типа A2W, A2T, T2A, итд...

способ для ленивых:)
(хотя я так тоже пользуюсь, но через _bstr_t)
дело в том, что бывает нужна не только ASNI codepage.
а эти макросы, насколько я знаю, такого не умеют.

ps. для того чтобы заставить работать %subj% оказалось достаточным
заменить WC_DEFAULTCHAR на 0, хотя такое значение среди констант WC_* отсутствует... :|
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.