【VC++】VS2017のダイアログベースでビルドエラーとなる場合の対応
<現象>
Visual Studio2017のダイアログベースでリソースを編集するとビルドエラーとなる
(英語版では発生しないが日本語版では発生する)
RC2135 file not found
再現手順は以下の通り
1.Visual Stuido2017でダイアログベースアプリのプロジェクト作成
2.ダイアログにエディットボックスなどを追加
3.ビルドするとエラーとなる
ちょっとはまったので、私の環境で行ったことをメモとして残します
Visual Stuido2017も最初は大丈夫だった気がする、、、
アップデートでしこまれたバグだと思われますが早く修正してほしい!!!
<バージョン>
Visual Studio Community 2017
Version 15.5.6
<ダイアログアプリ作成方法>
行ったこと
(1)MFC と ATL のサポート(x86 と x64)をインストール
Visual Studioメニューの[ツール]→[ツールと機能を取得]または
WindowsメニューのVisual Studio Installerを選択
(2)新規プロジェクトを作成
(4)アプリケーションの種類でダイアログベースを選択して[完了]押下
(5)リソースファイル(.rc)を開く
本サンプルではMFCApplication1.rcを右クリックしたコンテキストメニューで
[コードの表示]を選択
修正前)"言語 17、1¥r¥n"
修正後)"LANGUAGE 17,1¥r¥n"
<確認方法>
(1)ダイアログに確認用のGUIを追加
(2)ヘッダファイルにメンバ変数とイベント追加
本サンプルではMFCApplication1Dlg.hに追加
public:
afx_msg void OnBnClickedCheck1();
afx_msg void OnBnClickedButton1();
private:
CButton *cbtn;
CButton *ccheck;
CEdit *cedit;
(3)処理を追加
本サンプルではMFCApplication1Dlg.cppに追加
BOOL CMFCApplication1Dlg::OnInitDialog()
{
//~~ 省略 ~~
//初期化
cbtn = (CButton*)GetDlgItem(IDC_BUTTON1);
ccheck = (CButton*)GetDlgItem(IDC_CHECK1);
cedit = (CEdit*)GetDlgItem(IDC_EDIT1);
cbtn->SetWindowText(L"メッセージ表示");
ccheck->SetCheck(FALSE);
cedit->SetWindowText(L"");
//~~ 省略 ~~
}
//チェックON/OFF
void CMFCApplication1Dlg::OnBnClickedCheck1()
{
if (ccheck->GetCheck()) {
cedit->SetWindowText(L"チェックはONです");
}
else {
cedit->SetWindowText(L"チェックはOFFです");
}
}
//ボタン押下
void CMFCApplication1Dlg::OnBnClickedButton1()
{
AfxMessageBox(L"VisualStudio2017 MFCダイアログアプリケーション");
}
(4)ビルドして実行
よろしければポチッと押してください