Pregunta

Estoy usando MultibytimetoWideTechar para convertir mi cadena a un WSTRING.Primero estoy tratando de obtener el tamaño requerido para mi WSTRING.Según la documentación que pasa 0, ya que el último argumento debe lograr esto.El uso de MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0); devuelve 0 como el tamaño requerido del búfer WSTRING.He verificado que STR es una cadena no vacía también.¿Qué estoy haciendo mal aquí?

¿Fue útil?

Solución

de la Documentación de MSDN :

Para UTF-8 o CÓDIGO Página 54936 (GB18030, comenzando con Windows Vista), DWFLAGS debe configurarse en 0 o MB_ERR_INVALID_CHARS.De lo contrario, la función falla con ERROR_INVALID_FLAGS.

Estás usando CP_UTF8, pero también pasa la bandera MB_COMPOSETE, por eso es por eso que está fallando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top