とりあえず、このように書いてください。
C++
1WCHAR moz[20];
2int length = wsprintf(moz, L"%d", average(6, 8, 5, 7, 4, 5, 7));
3TextOut(hdc1n, 0, 0, moz, length);
L"%d"
という記述から、既定の「Unicode文字セットを使用する」オプションが設定されていると判断します。したがって、Win32 APIで定義されているLPTSTR
はWCHAR *
と同じになります。
ちなみに、WCHARはwchar_tのtypedefですので、`wchar_t moz[20];'と書いても問題ありません。
Win32 APIのwsprintf
を含めて、sprintf系関数に渡す「文字列バッファ」には、格納される文字列が充分に収まるサイズの領域を渡す必要があります。したがって、ポインタを渡すのではなく、上記コードのように配列変数として定義した領域を渡してください。
TextOut
関数の最後の引数には「文字数」を渡す必要があるので、sizeof
で取得できる変数のサイズを渡しても正しく処理されません。wsprintf関数は文字列バッファに格納した文字数を返すので、その値を利用します。C標準関数のwcslen
で文字数を取得してもかまいません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/08 08:17