как правильно перекодировать юникодовый текст с помощью %subj%?
строка вызова у меня такая:
WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);
Здравствуйте malloc, вы писали:
M>как правильно перекодировать юникодовый текст с помощью %subj%? M>строка вызова у меня такая: M>WideCharToMultiByte(CP_ACP, WC_DEFAULTCHAR, wszProgID, -1, szOut, 100, NULL, NULL);
а нельзя эти ужасы (тем более когда пользуешь дефолтовые значения) заменить на
#include <atlbase.h>
USES_CONVERSION;
и маленькие-приятные макросы с названиями типа A2W, A2T, T2A, итд...
Иногда эти макросы не пригодны. Дело в том, что они занимают память в секе. Когда строки могут быть действительно большими, лучше испльзовать функции на которых они базируются (при этом выделять память вручную) или испльзовать наш CascStr в нем все сделано чесно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте 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 или наоборот.
Здравствуйте 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 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_* отсутствует... :|