3

uefi プログラミングには、char16 幅の文字列を使用する必要があります。どうすれば簡単に初期化できますか? CHAR8 は簡単です:

CHAR8 *Str = "yehaw\0";

一方、CHAR16はそのように一生懸命働いているので、この初期化を選択しました:

CHAR16 *Str;
Str = AllocatePool(6*2); //AllocatePool allocates bytewise
Str = ('y','e','h','a','w','\o');

質問は、CHAR16 文字列を初期化するための正しくて最も簡単な方法は何でしょうか?

4

3 に答える 3

3

C 標準ライブラリがあり、適合する C/C++ コンパイラを使用している場合、通常、文字列の前に L を付けると、宣言された文字列に対して機能します。

 CHAR16 *Str =  L"yehaw";

動作します。ただし、どこでも受け入れられているタイプの

 wchar_t

?

于 2016-01-22T23:18:44.213 に答える
1

これを試して

CHAR16 *Str = u"yehaw\0";
于 2016-01-22T23:18:10.000 に答える