質問

MultiByTetoWideCharを使用して、文字列をWStringに変換します。私は最初に私のWStringのために必要なサイズを取得しようとしています。最後の引数がこれを達成する必要があるため、ドキュメントに応じて0を渡します。MultiByteToWideChar(CP_UTF8, MB_COMPOSITE, str.c_str(), -1, nullptr, 0);を使用すると、必要なWStringバッファのサイズとして0が返されます。STRは空でない文字列であることを確認しました。私はここで何を間違っていますか?

役に立ちましたか?

解決

MSDN Documentation

UTF-8またはコードPage 54936(Windows Vistaから始まるGB18030)、DWFLAGは0またはMB_ERR_INVALID_CHARSに設定する必要があります。それ以外の場合、関数はerror_invalid_flagsで失敗します。

CP_UTF8を使用しているだけでなく、MB_COMPOSIOSフラグを渡しているので、それが失敗した理由です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top