Подтверждено для работы с MSVC ++ 2017 (если вы выбрали правильный шрифт в консоли, он показывает большинство символов, за исключением «лица с раскатистыми глазами» \ U0001F644).

у конвертироватьwstring вu16string в C ++.

Я могу конвертироватьwstring в строку или наоборот. Но я не знаю, как преобразовать вu16string.

u16string CTextConverter::convertWstring2U16(wstring str)

{

        int iSize;
        u16string szDest[256] = {};
        memset(szDest, 0, 256);
        iSize = WideCharToMultiByte(CP_UTF8, NULL, str.c_str(), -1, NULL, 0,0,0);

        WideCharToMultiByte(CP_UTF8, NULL, str.c_str(), -1, szDest, iSize,0,0);
        u16string s16 = szDest;
        return s16;
}

Ошибка в WideCharToMultiByte (CP_UTF8, NULL, str.c_str (), -1, szDest, iSize, 0,0);szDest, Причинойu16string не может использовать сLPSTR.

Как я могу исправить этот код?