Конвертация строк из типа CString в std::string
вот примерные попытки того что пробовал
string to;
to = (LPCTSTR) from;
// выводит что то на подобии вот этого
// ёёёююёюююёю its is string
//или 123-=@>< its is string
Как я понимаю CString это UNICODE и занимает два байта, а std::string один байт и при переводе первые 127 символов берёт а остальные не берёт и как быть как конвертировать?? может у меня руки не из того места?? но вроде всё опробовал сделать))(под visual studio 2005)
Так же юзал такие функции как WideCharToMultiByte и MultiByteToWideChar так же не помогло или же в разных вариантах получаю строку типа 123-=@>< вместо строки русских символов. Скажите может у CString-а есть метод перекодировки?? и так тоже пробовал впринципе одинаковые примеры посути
string dst(static_cast<LPCSTR>(src));
вот примерные попытки того что пробовал
string to;
to = (LPCTSTR) from;
// выводит что то на подобии вот этого
// ёёёююёюююёю its is string
//или 123-=@>< its is string
Как я понимаю CString это UNICODE и занимает два байта, а std::string один байт и при переводе первые 127 символов берёт а остальные не берёт и как быть как конвертировать?? может у меня руки не из того места?? но вроде всё опробовал сделать))(под visual studio 2005)
Так же юзал такие функции как WideCharToMultiByte и MultiByteToWideChar так же не помогло или же в разных вариантах получаю строку типа 123-=@>< вместо строки русских символов. Скажите может у CString-а есть метод перекодировки?? и так тоже пробовал впринципе одинаковые примеры посути
string dst(static_cast<LPCSTR>(src));
string to;
to = from.GetString();
std::string strTo;
strTo.resize(strFrom.GetLength());
WideCharToMultiByte(CP_ACP, 0, strFrom, -1, &strTo[0], strTo.size(), NULL, NULL);
string to;
to = from.GetString();
Подпись не соответствует ответу:D на первых парах такую стоку перевёл пасиба,тока если в юникоде проект написан
#undef UNICODE
а так буду знать какая есть функция в MFC для CString
std::string strTo;
strTo.resize(strFrom.GetLength());
WideCharToMultiByte(CP_ACP, 0, strFrom, -1, &strTo[0], strTo.size(), NULL, NULL);
спасибо всё получилось здорово работает а я понял почему у меня эта функция не работала я не так указывал &strTo[0] и -1 вот она и вылетала
Или как вариант вместо перекодирования исспользовать std::wstring.
впринципе в зависимости от значения макроса _UNICODE можно затайпдефить и строковой тип основанный на std::string или std::wstring
как это сделанно со строковыми типами в том же MFC или Здфеащкь SDK. )
впринципе в зависимости от значения макроса _UNICODE можно затайпдефить и строковой тип основанный на std::string или std::wstring
как это сделанно со строковыми типами в том же MFC или Здфеащкь SDK. )
у меня четыре класса завязаны на std::string, много что в нём работает , а вот интерфейс пишется в MFC и четыре класса переделывать как то не с руки лучше метод (функцию) написать который переделывать будет и всё