1

私は MFC を初めて使用するので、このエラーをどうしたらよいかわかりません。

エラー

エラー C2664: 'void ATL::CStringT::Format(const wchar_t *,...)': パラメーター 1 を 'const char [6]' から 'const wchar_t *' に変換できません

ここに行があります:

m_Echo1.Format("%d %",state.dwMemoryLoad);
4

2 に答える 2

2

デフォルトでは、Windows アプリは 8 ビット文字ではなく 16 ビット文字を使用するように設定されています。引用符で囲まれた文字列を L"%d %" に変更して、16 ビット文字の文字列を指定します。

于 2013-08-09T23:42:28.460 に答える
2

投稿したコード行には 2 つの異なるエラーがあります。

  1. フォーマット文字列に不正なフォーマット指定子 (末尾%) が含まれています。フォーマット文字列にリテラルのパーセント記号を含めたい場合は、 を使用してエスケープする必要があります%%
  2. 必要なエンコーディングに一致しない文字列リテラルを使用しています。つまり、ANSI と UNICODE の文字エンコーディングが一致しません。m_Echo1がタイプの場合、パラメータはまたはマクロCString内にラップする必要があります: 。がタイプの場合、パラメーターは、先頭に:を追加して、UNICODE 文字列リテラルとして渡す必要があります。_TTEXT_T( "%d %%" )m_Echo1CStringWLL"%d %%"

注: 投稿したエラー メッセージは、コード行と一致しません。エラー メッセージはconst char [6]、コード内の文字列リテラルの型がconst char [5]. エラー メッセージとコードが一致していることを確認します。

于 2013-08-10T13:48:24.970 に答える