tchar to string



Автор Артем Малявкин задал вопрос в разделе Другие языки и технологии

как правильно преобразовать строку в TCHAR из CHAR? в WIN API и получил лучший ответ

Ответ от
TCHAR и CHAR это одно и тоже это typedef для char.
Чебуратор
Мыслитель
(6506)
Проблема явно не в этом. Покажите объявление для d, а лучше весь кусок кода, мне кажется вы пытаетесь записать символы в константую строку либо в неинициализированный указатель...

Ответ от Hello my brudda[гуру]
std::wstring a_to_w(std::string str)
{
std::wstring wstr = L"";
WCHAR wch[sizeof(str)];
MultiByteToWideChar(CP_UTF8,0,str.c_str(),-1,wch,sizeof(str));
wstr += wch;
return wstr;
}
CHAR * f = "THIS IS TEST!!!!
";
wcout << a_to_w(f);
std::string w_to_a(std::wstring wstr)
{
std::string str = "";
CHAR ch[sizeof(wstr)];
WideCharToMultiByte( CP_ACP, 0, wstr.c_str(), -1, ch, sizeof(wstr), NULL, FALSE );
str += ch;
return str;
}
TCHAR * f = L"THIS IS TEST!!!!
";
cout << w_to_a(f);

Ответ от ...[гуру]
Вы неправильно подходите к вопросу.
TCHAR может быть как "синонимом" char, так и wchar_t.
ссылка
Всё зависит от проекта работаете Вы с Unicode или нет.
Если нужно действительно из char в wchar_t, то в C++ есть встроенная функция mbstowcs
Если принципиально WinAPI, то
P.S: К слову - обратная тоже есть в стандарте:
P.P.S: Есс-но для работы этих функций должна быть правильно выставлена "локаль".

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: как правильно преобразовать строку в TCHAR из CHAR? в WIN API
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*