MFC 提示 error C2065: 'CAboutDlg' : undeclared identifier 是个什么情况?
errorC2065:'CAboutDlg':undeclaredidentifiererrorC2146:syntaxerror:missing';'beforeide...
error C2065: 'CAboutDlg' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlgAbout'
error C2065: 'dlgAbout' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
error C2065: 'CAboutDlg' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlgAbout'
error C2065: 'dlgAbout' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
void Cbofang::OnSysCommand(UINT nID, LPARAM lParam)
{
// TODO: Add your message handler code here and/or call default
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
这该怎么解决呢~? 展开
error C2146: syntax error : missing ';' before identifier 'dlgAbout'
error C2065: 'dlgAbout' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
error C2065: 'CAboutDlg' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlgAbout'
error C2065: 'dlgAbout' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
void Cbofang::OnSysCommand(UINT nID, LPARAM lParam)
{
// TODO: Add your message handler code here and/or call default
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
这该怎么解决呢~? 展开
4个回答
展开全部
“identifier”: 未声明的标识符
在可使用变量的类型前必须在声明中指定它。在可以使用函数前必须在声明或原型中指定该函数使用的参数。
可能的原因:
您正在用 C 运行库的调试版本进行编译,在 for 循环中声明标准 C++ 库迭代器变量,然后尝试在 for 循环范围外使用该迭代器变量。用 C 运行库的调试版本编译标准 C++ 库代码暗指使用 /Zc:forScope。有关更多信息,请参见调试迭代器支持。
可能正在调用当前不受生成环境支持的 SDK 头文件中的函数。
省略必要的包含文件,尤其是在定义 VC_EXTRALEAN、WIN32_LEAN_AND_MEAN 或 WIN32_EXTRA_LEAN 时。这些符号从 windows.h 和 afxv_w32.h 中排除了一些头文件以加快编译。(在 windows.h 和 afxv_w32.h 中查找排除的头文件的最新说明。)
标识符名拼写错误。
标识符使用了错误的大小写字母。
字符串常数的后面缺少右引号。
命名空间范围不正确。例如,若要解析 ANSI C++ 标准库函数和运算符,则必须用 using 指令指定 std 命名空间。下面的示例未能编译,因为 using 指令被注释掉,并且在 std 命名空间中定义了 cout:
在可使用变量的类型前必须在声明中指定它。在可以使用函数前必须在声明或原型中指定该函数使用的参数。
可能的原因:
您正在用 C 运行库的调试版本进行编译,在 for 循环中声明标准 C++ 库迭代器变量,然后尝试在 for 循环范围外使用该迭代器变量。用 C 运行库的调试版本编译标准 C++ 库代码暗指使用 /Zc:forScope。有关更多信息,请参见调试迭代器支持。
可能正在调用当前不受生成环境支持的 SDK 头文件中的函数。
省略必要的包含文件,尤其是在定义 VC_EXTRALEAN、WIN32_LEAN_AND_MEAN 或 WIN32_EXTRA_LEAN 时。这些符号从 windows.h 和 afxv_w32.h 中排除了一些头文件以加快编译。(在 windows.h 和 afxv_w32.h 中查找排除的头文件的最新说明。)
标识符名拼写错误。
标识符使用了错误的大小写字母。
字符串常数的后面缺少右引号。
命名空间范围不正确。例如,若要解析 ANSI C++ 标准库函数和运算符,则必须用 using 指令指定 std 命名空间。下面的示例未能编译,因为 using 指令被注释掉,并且在 std 命名空间中定义了 cout:
展开全部
类说白了其实就是一个数据结构,只不过类这种数据结构除了有数据外还有函数,按照这种说法,你用CAboutDlg数据结构(类)定义了一个变量dlgAbout,可是这个数据结构(类)CAboutDlg你并没有定义,所以就出现这样的错误,其实error C2065: 'CAboutDlg' : undeclared identifier就已经告诉你CAboutDlg没有定义了,也就是,在使用CAboutDlg定义变量之前你必须先定义CAboutDlg,如果你的CAboutDlg是在一个头文件中定义,那么在使用到CAboutDlg的文件中必须包含定义CAboutDlg头文件。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你仔细检查下. 可能是你在 某个h文件里 定义的东西 少个分号 ;
特别是包含about这个类的头文件.
特别是包含about这个类的头文件.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是你没有包含CAboutDlg的头文件。或者是被你删除掉了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询