質問: ### 前提・実現したいこと ここに質問したいことを詳細に書いてください (例)VisualStudio2010 C++でアプリケーション開発を勉強しています。 新規MFCアプリケーション、ダイアログで新規プロジェクトを作成しました。 ### 発生している問題・エラーメッセージ void CDlgPracticeDlg::OnBnClickedButton1() { AfxMessageBox("Hello World!"); // TODO: ここにコントロール通知ハンドラー コードを追加します。 } ボタンを1つ作成し、そのボタンを押した場合にメッセージを出すという機能を作成したいのですが、 ビルドした際、 error C2665: 'AfxMessageBox' : 2 オーバーロードのどれも、すべての引数の型を変換できませんでした という内容のエラーメッセージが出てしまい、ビルドが出来ません。 その下には、 microsoft visual studio 10.0\vc\atlmfc\include\afxwin.h(6699): 'int AfxMessageBox(LPCTSTR,UINT,UINT)' の可能性があります。 microsoft visual studio 10.0\vc\atlmfc\include\afxwin.h(6701): または 'int AfxMessageBox(UINT,UINT,UINT)' 引数リスト '(const char [13])' を一致させようとしているとき というエラーメッセージもあります。 ``` エラーメッセージ ``` ### 該当のソースコード ``` ここにご自身が実行したソースコードを書いてください ``` ### 試したこと 課題に対してアプローチしたことを記載してください C++の入門書通りに作成していて、 いきなり最初のメッセージボックス作成でつまづいてしまい、 解決方法が全くわかりません。 解決方法を教えて頂けると大変助かります。 ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: プロジェクトのプロパティの構成のプロパティ->全般->文字セットがデフォルトの「UNICODE~」になっていると思います。 1. `AfxMessageBox(_T("Hello World!"));`のように文字列は`_T()`で囲む。 2.「マルチ バイト文字セットを使用する」に変更する。 のいずれかをおこなってください。(1を推奨) 参考:_T("")マクロについて