Domanda

Sto usando il multibytetowidechar per convertire la mia stringa in una wstring.Sto per prima cosa tentando di ottenere le dimensioni richieste per la mia wstring.Secondo la documentazione che passa 0 come l'ultimo argomento dovrebbe realizzare questo.Usando MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0); restituisce 0 come dimensione richiesta del buffer WSTRING.Ho verificato che str è anche una stringa non vuota.Cosa sto facendo male qui?

È stato utile?

Soluzione

Dal Documentazione MSDN :

.

Per UTF-8 o codice Page 54936 (GB18030, Avvio di Windows Vista), DWFLAGS deve essere impostato su 0 o MB_ERR_INVALID_CHARS.In caso contrario, la funzione non riesce con errori_invalid_flags.

Stai usando CP_UTF8 ma anche passando la bandiera MB_Composite, quindi è per questo che sta fallendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top