質問

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

const char * myString = someFunction();

今、私は私が後で使用する関数が狭い文字列を処理していないので、wchar arrayとしてそれを後処理したい。

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

結局MultiByteToWideCharの?

(それは私が入力として取得狭い文字列であるため、しかし、それは=>おそらく最も美しいソリューションマルチバイト文字を持っていません)
役に立ちましたか?

解決

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];

他のヒント

あなたが狭い文字列に拡張文字を使用していない限り、

MultiByteToWideCharのが動作します。その場合は、プレーン英数字の文字列は、それが正常に動作する必要があります。

あなたも少し複雑ですが、コントロールの同じ量を提供していませんmbstowcsはで見ることができます。

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