次の方法で共有


wsprintfW 関数 (winuser.h)

指定したバッファーに書式設定されたデータを書き込みます。 すべての引数は、フォーマット文字列内の対応する書式指定に従って変換され、出力バッファーにコピーされます。 この関数は、書き込む文字に終端の null 文字を追加しますが、戻り値の文字数に終端の null 文字は含まれません。

注意 使用しないでください。 代わりに、StringCbPrintfStringCbPrintfExStringCchPrintf、または StringCchPrintfExを する関数のいずれかを使用することを検討してください。 「セキュリティに関する考慮事項」を参照してください。
 

構文

int WINAPIV wsprintfW(
  [out] LPWSTR  unnamedParam1,
  [in]  LPCWSTR unnamedParam2,
        ...     
);

パラメーター

[out] unnamedParam1

型: LPTSTR

書式設定された出力を受け取るバッファー。 バッファーの最大サイズは 1,024 バイトです。

[in] unnamedParam2

型: LPCTSTR

書式制御の仕様。 通常の ASCII 文字に加えて、各引数の書式指定がこの文字列に表示されます。 書式指定の詳細については、「解説」セクションを参照してください。

...

1 つ以上の省略可能な引数。 引数パラメーターの数と型は、lpFmt パラメーターの対応する書式制御仕様によって異なります。

戻り値

型: int

関数が成功した場合、戻り値は出力バッファーに格納されている文字数であり、終端の null 文字はカウントされません。

関数が失敗した場合、戻り値は予想される出力の長さよりも小さくなります。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

書式制御文字列には、lpFmt パラメーターに続く引数の出力形式を決定する書式指定が含まれています。 以下で説明する書式指定は、常にパーセント記号 (%) で始まります。 パーセント記号の後に書式フィールドとして意味のない文字が続く場合、その文字は書式設定されません (たとえば、%% は 1 つのパーセント記号文字を生成します)。

書式制御文字列は左から右に読み取られます。 最初の書式指定 (存在する場合) が検出されると、書式指定文字列の後の最初の引数の値が変換され、書式指定に従って出力バッファーにコピーされます。 2 番目の書式指定では、2 番目の引数が変換およびコピーされます。その他も同じになります。 書式指定よりも多くの引数がある場合、余分な引数は無視されます。 すべての書式指定に十分な引数がない場合、結果は未定義になります。

書式指定の形式は次のとおりです。

%[-][#][0][][精度]

各フィールドは、特定の書式オプションを示す 1 文字または数字です。 最後の省略可能な書式フィールドの後に表示される文字によって、関連付けられた引数が文字、文字列、または数値として解釈されるかどうかが決まります。 最も単純な書式指定には、パーセント記号と型文字 (たとえば、%s) のみが含まれます。 省略可能なフィールドは、書式設定の他の側面を制御します。 省略可能なフィールドと必須フィールドとその意味を次に示します。

意味
- 出力を空白またはゼロで右に埋め込み、フィールドの幅を埋め、出力を左に揃えます。 このフィールドを省略すると、出力は左に埋め込まれるので、右側に配置されます。
# 16 進数の値には、0x (小文字) または 0X (大文字) のプレフィックスを付けます。
0 出力値をゼロで埋め込み、フィールドの幅を埋めます。 このフィールドを省略すると、出力値に空白スペースが埋め込まれます。
幅 を する 指定した最小文字数を出力バッファーにコピーします。 フィールドは負でない整数です。 幅指定によって値が切り捨てられることはありません。出力値の文字数が指定された幅より大きい場合、または フィールドが存在しない場合は、有効桁数の指定に従って、値のすべての文字が出力されます。
.精度 数値の場合は、指定した最小桁数を出力バッファーにコピーします。 引数の桁数が指定された有効桁数より小さい場合、出力値は左側にゼロで埋め込まれます。 桁数が指定した有効桁数を超えた場合、値は切り捨てされません。 指定した有効桁数が 0 または完全に省略されている場合、またはピリオド (.) が後に数値なしで表示される場合、有効桁数は 1 に設定されます。

文字列の場合は、指定した最大文字数を出力バッファーにコピーします。

対応する引数を文字、文字列、または数値として出力します。 このフィールドには、次のいずれかの値を指定できます。
c
1 文字。 この値は、wsprintfA によって CHAR 型として解釈され、wsprintfWによって WCHAR されます。 wsprintf は、wsprintfA (Unicode が定義されていません) または wsprintfW (Unicode 定義) 定義されたマクロです。
C
1 文字。 この値は、wsprintfA を して WCHAR 型として解釈され、wsprintfWによって CHAR されます。 wsprintf は、wsprintfA (Unicode が定義されていません) または wsprintfW (Unicode 定義) 定義されたマクロです。
d
符号付き 10 進整数。 この値は、iと同じです。
hchC
1 文字。 文字の数値が 0 の場合は無視されます。 呼び出し元のアプリケーションで Unicode が定義されている場合でも、この値は常に CHAR型として解釈されます。
hd
符号付き短整数引数。
hshS
糸。 呼び出し元のアプリケーションで Unicode が定義されている場合でも、この値は常に LPSTR型として解釈されます。
hu
符号なし短整数。
i
符号付き 10 進整数。 この値は、dと同じです。
IxIX
64 ビット プラットフォームでは小文字または大文字の 64 ビット符号なし 16 進数整数、32 ビット プラットフォームでは小文字または大文字の 32 ビット符号なし 16 進数整数。
lclC
1 文字。 文字の数値が 0 の場合は無視されます。 呼び出し元のアプリケーションで Unicode が定義されている場合でも、この値は常に WCHAR型として解釈されます。
ld
長い符号付き整数。 この値は、liと同じです。
li
長い符号付き整数。 この値は、ldと同じです。
lslS
糸。 この値は、呼び出し元のアプリケーションで Unicode が定義されていない場合でも、LPWSTR型として常に解釈されます。 この値は、wsと同じです。
lu
長い符号なし整数。
lxlX
小文字または大文字の長い符号なし 16 進整数。
p
ポインタ。 アドレスは 16 進数を使用して出力されます。
s
糸。 この値は、wsprintfA を して LPSTR 型として解釈され、wsprintfWによって LPWSTR 型と解釈されます。 wsprintf は、wsprintfA (Unicode が定義されていません) または wsprintfW (Unicode 定義) 定義されたマクロです。
S
糸。 この値は、wsprintfA によって LPWSTR 型として解釈され、wsprintfWによって LPSTR 解釈されます。 wsprintf は、wsprintfA (Unicode が定義されていません) または wsprintfW (Unicode 定義) 定義されたマクロです。
u
符号なし整数引数。
xX
小文字または大文字の符号なし 16 進整数。
 
注意 wsprintf では、標準呼び出し (_stdcall) 呼び出し規則ではなく、C 呼び出し規則 (_cdecl) が使用されることに注意してください。 その結果、スタックから引数をポップするのは呼び出し元プロセスの役割であり、引数は右から左にスタックにプッシュされます。 C 言語モジュールでは、C コンパイラはこのタスクを実行します。
 
1024 バイトを超えるバッファーを使用するには、_snwprintfを使用します。 詳細については、C ランタイム ライブラリのドキュメントを参照してください。

手記

winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして wsprintf を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winuser.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll

関連項目

概念

リファレンス

StringCbPrintf

StringCbPrintfEx の

StringCbVPrintf の

StringCbVPrintfEx の

StringCchPrintf

StringCchPrintfEx

StringCchVPrintf

StringCchVPrintfEx

文字列の

wvsprintf