1

Windows API 関数 mbstowcs_s のコンテキストで Word の正確なサイズを決定するのに苦労しています。MSDN からの関連情報とリンクを次に示します。

mbstowcs_s、_mbstowcs_s_l

マルチバイト文字のシーケンスを、対応するワイド文字のシーケンスに変換します。「CRT のセキュリティ機能」で説明されているように、セキュリティが強化された mbstowcs、_mbstowcs_l のバージョン。

パラメーター

[out] pReturnValue - 変換された文字数。

[out] wcstr - 結果として変換されたワイド文字列のバッファーのアドレス。

[in] sizeInWords - wcstr バッファーのサイズ (単語単位)。

[in] mbstr - null で終了するマルチバイト文字のシーケンスのアドレス。

[in] count - wcstr バッファーに格納するワイド文字の最大数。終端の null または _TRUNCATE は含まれません。

MSDN ページへのリンクは次のとおりです: https://msdn.microsoft.com/en-us/library/eyktyxsx.aspx

何か案は?

4

1 に答える 1

0

通常、1 ワードは 16 ビットを意味します。

確認するために、たとえば 100 バイトのバッファーを割り当て、それらをすべて 0xff で埋めます。次に、sizeInWords に 16 を渡し、16 文字以上の mbstr を渡します。呼び出しが完了したら、デバッガーで wcstr を検査します。私が正しければ、バッファの最初の 32 バイトには文字値が含まれ、残りは 0xff のままです。(もちろん、これは wcstr の一部の値が 0xff である可能性があるという事実を無視しています)

于 2015-03-04T19:12:13.130 に答える