问题描述
- 在vs2010中利用mfc写一个连连看游戏时各种资源窗口啥的等都报“未声明的标识符”问题 10C
- 写这个连连看游戏刚开始导入各种资源文件改好ID后运行正常,但通过进一步的编程后不知道为什么开始报各种”未声明的标识符“bug(可能中途改了一些什么设置.....)现项目最近运行的log文件如下:
生成启动时间为 2016/5/26 17:37:08。 1>项目“C:UsersAliezdocumentsvisual studio 2010ProjectsLianliankanLLKLLK.vcxproj”在节点 2 上(build 个目标)。 1>InitializeBuildStatus: 正在对“DebugLLK.unsuccessfulbuild”执行 Touch 任务。 ClCompile: 所有输出均为最新。 C:Program Files (x86)Microsoft Visual Studio 10.0VCbinCL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D _UNICODE /D UNICODE /D _AFXDLL /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc""StdAfx.h"" /Fp""DebugLLK.pch"" /Fo""Debug\"" /Fd""Debugvc100.pdb"" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp stdafx.cpp C:Program Files (x86)Microsoft Visual Studio 10.0VCbinCL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _WINDOWS /D _DEBUG /D _UNICODE /D UNICODE /D _AFXDLL /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu""StdAfx.h"" /Fp""DebugLLK.pch"" /Fo""Debug\"" /Fd""Debugvc100.pdb"" /Gd /TP /analyze- /errorReport:prompt GameControl.cpp GameDlg.cpp GameLogic.cpp LLK.cpp LLKDlg.cpp LLKDlg.cpp 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.h(14): error C2065: “IDD_LLK_DIALOG”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C2146: 语法错误: 缺少“;”(在标识符“m_GameC”的前面) 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(17): error C2065: “IDD_GAME_DIALOG”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(23): error C2065: “IDD_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(54): error C2065: “IDR_MAINFRAME”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(66): error C2065: “IDC_BTN_BASIC”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(66): error C2065: “IDC_BTN_BASIC”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(67): error C2065: “IDC_BTN_BASIC”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(67): error C2065: “IDC_BTN_BASIC”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(79): error C2065: “IDM_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(79): error C2065: “IDM_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(80): error C2065: “IDM_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(87): error C2065: “IDS_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(92): error C2065: “IDM_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(108): error C2065: “IDM_ABOUTBOX”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkllkdlg.cpp(161): error C2065: “IDB_MAIN_BG”: 未声明的标识符 LLK.cpp GameLogic.cpp 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(15): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(15): error C2065: “s_nRows”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(16): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(16): error C2065: “s_nCols”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(17): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(17): error C2065: “s_nPicNum”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(70): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamelogic.cpp(70): error C2065: “s_nRows”: 未声明的标识符 GameDlg.cpp 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C2146: 语法错误: 缺少“;”(在标识符“m_GameC”的前面) 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(14): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.h(17): error C2065: “IDD_GAME_DIALOG”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(32): error C2065: “IDB_Game_BG”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(41): error C2065: “IDC_BTN_START”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(41): error C2065: “IDC_BTN_START”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(54): error C2065: “IDR_MAINFRAME”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(55): error C2065: “IDR_MAINFRAME”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(109): error C2065: “CGameControl”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(109): error C2146: 语法错误: 缺少“;”(在标识符“ctr”的前面) 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(109): error C2065: “ctr”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(110): error C2065: “ctr”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(110): error C2228: “.StartGame”的左边必须有类/结构/联合 类型是“'unknown-type'” 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(116): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(116): error C2065: “s_nRows”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(117): error C2653: “CGameControl”: 不是类或命名空间名称 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(117): error C2065: “s_nCols”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(125): error C2065: “m_GameC”: 未声明的标识符 1>c:usersAliezdocumentsvisual studio 2010projectslianliankanllkgamedlg.cpp(125): error C2228: “.GetElement”的左边必须有类/结构/联合 类型是“'unknown-type'” GameControl.cpp 正在生成代码... 1>已完成生成项目“C:UsersAliezdocumentsvisual studio 2010ProjectsLianliankanLLKLLK.vcxproj”(build 个目标)的操作 - 失败。生成失败。已用时间 00:00:15.03
有关LLKDlg.cpp代码如下:
// LLKDlg.cpp : 实现文件//#include ""stdafx.h""#include ""LLKDlg.h""#include ""afxdialogex.h""#include <afxwin.h>#include ""GameDlg.h""#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogEx{public: CAboutDlg();// 对话框数据 enum { IDD =IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected: DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg CDialogEx)END_MESSAGE_MAP()// CLLKDlg 对话框CLLKDlg::CLLKDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CLLKDlg::IDD pParent){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CLLKDlg::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CLLKDlg CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BTN_BASIC &CLLKDlg::OnBnClickedBtnBasic) ON_BN_CLICKED(IDC_BTN_BASIC &CLLKDlg::OnBnClickedBtnBasic)END_MESSAGE_MAP()// CLLKDlg 消息处理程序BOOL CLLKDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 InitBackground(); // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING IDM_ABOUTBOX strAboutMenu); } } // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon TRUE); // 设置大图标 SetIcon(m_hIcon FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}void CLLKDlg::OnSysCommand(UINT nID LPARAM lParam){ if ((nID & 0xFFF0) ==IDM_ABOUTBOX)//IDM_ABOUTBOX { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialogEx::OnSysCommand(nID lParam); }}// 如果向对话框添加最小化按钮,则需要下面的代码// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,// 这将由框架自动完成。void CLLKDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND reinterpret_cast<WPARAM>(dc.GetSafeHdc()) 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x y m_hIcon); } else {//创建CPanitDC对象 CPaintDC dc(this); dc.BitBlt(00800600&m_dcMem00SRCCOPY);//绘制背景图片 CDialogEx::OnPaint(); }}//当用户拖动最小化窗口时系统调用此函数取得光标//显示。HCURSOR CLLKDlg::OnQueryDragIcon(){ return static_cast<HCURSOR>(m_hIcon);}void CLLKDlg::InitBackground(){ CClientDC dc(this);//获得对话框的视频内存 CBitmap bmpMain; bmpMain.LoadBitmap(IDB_MAIN_BG); m_dcMem.CreateCompatibleDC(&dc);//创建与视频内存兼容的内存DC m_dcMem.SelectObject(bmpMain);//将位图组员选入DC //调整窗口大小 CRect rtWin; CRect rtClient; this->GetWindowRect(rtWin);//获得窗口大小 this->GetClientRect(rtClient);//获得客户区大小 //标题栏和外边框的大小 int nSpanWidth = rtWin.Width()-rtClient.Width(); int nSpanHeight = rtWin.Height()-rtClient.Height(); //设置窗口大小 MoveWindow(00800+nSpanWidth600 + nSpanHeight); CenterWindow();}void CLLKDlg::OnBnClickedBtnBasic(){ // TODO: 在此添加控件通知处理程序代码 CDialogEx::ShowWindow(SW_HIDE); CGameDlg dlg; dlg.DoModal();}
总之希望解决这里各种报”未声明的标识符“问题,有关资源ID我都已经改过与代码中一致了,然而.......
因为老师布置作业要求入了mfc这个坑,请各位前辈菊苣指教,万分感谢.....
时间: 2024-11-01 02:37:23