Как перевести ANSI строку в Unicode?

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2011

Нужно из строки LPSTR получить строку LPWSTR, используя возможности MFC/ATL и, желательно, не используя прямые вызовы функций семейства MultiByteToWideChar.

Ответы

▲ 2Принят

В чистом C++ остается только MultiByteToWideChar из Windows API: он как раз и создан для подобных целей. А в MFC/ATL есть спец макросы (подозреваю, это обертки над MultiByteToWideChar).

void StringFunc(LPSTR lpsz)
{
   USES_CONVERSION;

   LPWSTR x = A2W(lpsz);
   // Do something with x
   wprintf_s(L"x is %s", x);
}

Взято оттуда: ATL and MFC String Conversion Macros.