注册 登录
编程论坛 VC++/MFC

请问 error C2065 如何解决

chjiang78 发布于 2014-11-20 13:23, 723 次点击
BOOL CUserDlg::OnInitDialog() 在VC6对话框初始化下的两行代码,报错。
    CTitleBarColorDlg dlg;
    if(dlg.DoModal() != IDOK)
调试具体报错如下:
UserDlg.cpp(50) : error C2065: 'CTitleBarColorDlg' : undeclared identifier
UserDlg.cpp(50) : error C2146: syntax error : missing ';' before identifier 'dlg'
UserDlg.cpp(50) : error C2065: 'dlg' : undeclared identifier
UserDlg.cpp(51) : error C2228: left of '.DoModal' must have class/struct/union type
显然问题是从第一个error C2065开始的。
请问可能是哪里出问题了?
8 回复
#2
天使梦魔2014-11-20 21:14
CTitleBarColorDlg   是什么?没定义过,它不是某个库提供的类,估计是自己写的
#3
chjiang782014-11-21 07:22
它是具体的对话框的类。
#4
天使梦魔2014-11-21 08:45
'CTitleBarColorDlg' : undeclared identifier
未声明的标识符,你是不是把它拼错了,如果是mfc那没有这个类
#5
chjiang782014-11-21 19:27
不知道是否思路出了问题。
现有登录窗口:http://www.
仅一个对话框CTitleBarColorDlg
如果要借用这个代码直接建立登录窗口。新建一个CUserDlg对话框及类。当然主程序类还是CTitleBarColorApp,在
BOOL CTitleBarColorApp::InitInstance()
    CUserDlg dlg;
    m_pMainWnd = &dlg;    //打开自定对话框
然后在此对话框BOOL CUserDlg::OnInitDialog()
CTitleBarColorDlg dlg;
    if(dlg.DoModal() != IDOK)
    {
        OnOK();
    }
以先打开登录窗口,可是报错了。
不知是否不能采用此种做法?
#6
天使梦魔2014-11-21 20:47
CTitleBarColorDlg dlg;
CUserDlg dlg;
都声明为dlg,你确定没冲突?
int a;
char a;
这样也不行吧
#7
chjiang782014-11-22 08:14
CTitleBarColorDlg dlg1;
    if(dlg1.DoModal() != IDOK)
 就算改为dlg1还是对这两行报错。
是不是不能这么修改。(因为很多实际操作内容资料没有介绍~)
#8
天使梦魔2014-11-22 10:16
报什么错?如果还是error C2065: 'CTitleBarColorDlg' : undeclared identifier
它说了找不到这个声明,说明你没有添加进入,编译的时候无法找到该类的声明。
看下你头文件添加没有,在引用的文件里有没有这些头文件,或者下载的时候看下除了h文件有没有对应的cpp实现代码。都要放在工程里的,然后在使用的地方包含它们。
#9
chjiang782014-11-22 19:13
确实,需要在UserDlg.h文件前加入:
#include "TitleBarColor.h"
#include "TitleBarColorDlg.h"
#include "UserDlg.h"
然后就不报错了。受教了~
1