0

私のコードではconst char array、次のようなものを受け取ります。

const char * myString = someFunction();

wchar array後で使用する関数は狭い文字列を処理しないため、これを後処理したいと思います。

この目標を達成するための最も簡単な方法は何ですか?

最終的にMultiByteToWideChar?(ただし、入力として取得する狭い文字列であるため、マルチバイト文字は含まれていません=>おそらく最も美しいソリューションではありません)

4

2 に答える 2

3

MultiByteToWideCharは、狭い文字列で拡張文字を使用していない限り機能します。プレーンな英数字の文字列であれば、正常に機能するはずです。

また、少し複雑ではありませんが、同じ量の制御を提供しないmbstowcsを確認することもできます。

于 2009-12-04T10:13:12.200 に答える
3
const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];
于 2009-12-04T11:00:04.600 に答える