ANSI 文字列のストリームから WIDE 文字列を作成する
ANSI 文字列のストリームから WIDE 文字列を効率よく作成する例
UInt32 length; SFXBinaryStreamReader stream; SFXBuffer buffer; SFXAnsiString ansi; SFXWideString wide; SFCError error(SFERR_NO_ERROR); length = 10; // for test // ストリームから読み込むためのバッファを確保する // 文字列クラスへのバッファの委譲では、最後の文字にあたる // バッファはヌル文字で上書きされる // +1 が必要 if ((error = buffer.SetSize(length + 1)) == SFERR_NO_ERROR) { // ストリームから ANSI 文字列を読み込む if ((error = stream.Read(buffer.GetBuffer(), length)) == SFERR_NO_ERROR) { // 最後の文字をヌル終端する buffer[length] = '\0'; // ansi 変数にバッファを委譲する if ((error = ansi.AttachSFXBuffer(&buffer)) == SFERR_NO_ERROR) { // ANSI 文字列から WIDE 文字列へ変換する if ((error = wide.Set(ansi)) == SFERR_NO_ERROR) { // wide 変数は有効 // この例ではバッファのコピーは2回 } } } }