私は MFC を初めて使用するので、このエラーをどうしたらよいかわかりません。
エラー
エラー C2664: 'void ATL::CStringT::Format(const wchar_t *,...)': パラメーター 1 を 'const char [6]' から 'const wchar_t *' に変換できません
ここに行があります:
m_Echo1.Format("%d %",state.dwMemoryLoad);
デフォルトでは、Windows アプリは 8 ビット文字ではなく 16 ビット文字を使用するように設定されています。引用符で囲まれた文字列を L"%d %" に変更して、16 ビット文字の文字列を指定します。
投稿したコード行には 2 つの異なるエラーがあります。
%
) が含まれています。フォーマット文字列にリテラルのパーセント記号を含めたい場合は、 を使用してエスケープする必要があります%%
。m_Echo1
がタイプの場合、パラメータはまたはマクロCString
内にラップする必要があります: 。がタイプの場合、パラメーターは、先頭に:を追加して、UNICODE 文字列リテラルとして渡す必要があります。_T
TEXT
_T( "%d %%" )
m_Echo1
CStringW
L
L"%d %%"
注: 投稿したエラー メッセージは、コード行と一致しません。エラー メッセージはconst char [6]
、コード内の文字列リテラルの型がconst char [5]
. エラー メッセージとコードが一致していることを確認します。