VS2010 MFC工程奇怪提示未定义

时间:2022-08-24 22:43:20
定义一个类对象老是提示未定义这个类,不知道什么原因?
PS: 定义是没问题的,头文件也包含了...

20 个解决方案

#1


引用 楼主 skyandcode 的回复:
定义一个类对象老是提示未定义这个类,不知道什么原因?
PS: 定义是没问题的,头文件也包含了...


照你说的这几句话,你觉着我们能帮上你的忙吗?

#2


看你这描述只能建议rebuild all一下

#3


不贴代码让大家怎么分析。。。

#4


#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#5


引用 1 楼 wxj198904 的回复:
引用 楼主 skyandcode 的回复:定义一个类对象老是提示未定义这个类,不知道什么原因?
PS: 定义是没问题的,头文件也包含了...

照你说的这几句话,你觉着我们能帮上你的忙吗?


#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#6


引用 2 楼 xianglitian 的回复:
看你这描述只能建议rebuild all一下



#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#7


Online.h的内容就是下面的代码么
那应该是没有问题的啊

#8


引用 7 楼 xianglitian 的回复:
Online.h的内容就是下面的代码么
那应该是没有问题的啊


可能是头文件的问题。以前都没遇到过。。。。

#9


#include "Online.h" ;这个地方错了。
#include加载头文件后不要加 ; 

#10


#include "Online.h" ;去掉 ;

#11


引用 9 楼 liuli7786 的回复:
#include "Online.h";这个地方错了。
#include加载头文件后不要加;

不是这个问题。那个是我不复制过来不小心加上的。。。

#12


这个还真看不出来,要不你就把工程发到我邮箱里!wawwxj@163.com

#13


引用 12 楼 wxj198904 的回复:
这个还真看不出来,要不你就把工程发到我邮箱里!wawwxj@163.com

发给你了。

#14


你发哪去了?没收到啊!

#15


引用 14 楼 wxj198904 的回复:
你发哪去了?没收到啊!

哥们,我先回复你,然后再发的。现在马上发,不好意思

#16


引用 14 楼 wxj198904 的回复:
你发哪去了?没收到啊!

网速不太好,==

#17


引用 16 楼 skyandcode 的回复:
引用 14 楼 wxj198904 的回复:你发哪去了?没收到啊!
网速不太好,==
你俩真是 VS2010 MFC工程奇怪提示未定义

#18


clas COnline : public CDialog先定义吧,
虽然在一个头文件里,内容没定义就用了

#19


#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

你这是2个分开的文件吗你这clas  少了个s吧。成功定义才怪

#20


引用 19 楼 shui0527 的回复:
#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

你这是2个分开的文件吗你这clas  少了个s吧。成功定义才怪


这些写少个字符都不是问题所在。。。。可能是我复制过来的时候不小心造成的。
我改了一下,应该是头文件的重复包含问题。

#1


引用 楼主 skyandcode 的回复:
定义一个类对象老是提示未定义这个类,不知道什么原因?
PS: 定义是没问题的,头文件也包含了...


照你说的这几句话,你觉着我们能帮上你的忙吗?

#2


看你这描述只能建议rebuild all一下

#3


不贴代码让大家怎么分析。。。

#4


#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#5


引用 1 楼 wxj198904 的回复:
引用 楼主 skyandcode 的回复:定义一个类对象老是提示未定义这个类,不知道什么原因?
PS: 定义是没问题的,头文件也包含了...

照你说的这几句话,你觉着我们能帮上你的忙吗?


#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#6


引用 2 楼 xianglitian 的回复:
看你这描述只能建议rebuild all一下



#pragma once
#include "Online.h";  //不要下面的online,单单加这个头文件也有问题,提示我其它对象没定义。
                      //我只有三四个对话框类,按道理头文件不会出现问题的。
class ChatRoom : public CDialog
{
public:
        //省略...
COnline online;  //这样就提示出错了...
                         
};

#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

public:
COnline(CWnd* pParent = NULL);   // 标准构造函数
virtual ~COnline();


// 对话框数据
enum { IDD = IDD_DIALOG3 };

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
CListCtrl m_list;
CClientDlg* pCliDlg;
cliHead* m_cliHead;
void InitOnlineList(CString strOnline);
}
是这样的。

#7


Online.h的内容就是下面的代码么
那应该是没有问题的啊

#8


引用 7 楼 xianglitian 的回复:
Online.h的内容就是下面的代码么
那应该是没有问题的啊


可能是头文件的问题。以前都没遇到过。。。。

#9


#include "Online.h" ;这个地方错了。
#include加载头文件后不要加 ; 

#10


#include "Online.h" ;去掉 ;

#11


引用 9 楼 liuli7786 的回复:
#include "Online.h";这个地方错了。
#include加载头文件后不要加;

不是这个问题。那个是我不复制过来不小心加上的。。。

#12


这个还真看不出来,要不你就把工程发到我邮箱里!wawwxj@163.com

#13


引用 12 楼 wxj198904 的回复:
这个还真看不出来,要不你就把工程发到我邮箱里!wawwxj@163.com

发给你了。

#14


你发哪去了?没收到啊!

#15


引用 14 楼 wxj198904 的回复:
你发哪去了?没收到啊!

哥们,我先回复你,然后再发的。现在马上发,不好意思

#16


引用 14 楼 wxj198904 的回复:
你发哪去了?没收到啊!

网速不太好,==

#17


引用 16 楼 skyandcode 的回复:
引用 14 楼 wxj198904 的回复:你发哪去了?没收到啊!
网速不太好,==
你俩真是 VS2010 MFC工程奇怪提示未定义

#18


clas COnline : public CDialog先定义吧,
虽然在一个头文件里,内容没定义就用了

#19


#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

你这是2个分开的文件吗你这clas  少了个s吧。成功定义才怪

#20


引用 19 楼 shui0527 的回复:
#pragma once
#include "afxcmn.h"
#include "ClientDlg.h"

clas COnline : public CDialog
{
DECLARE_DYNAMIC(COnline)

你这是2个分开的文件吗你这clas  少了个s吧。成功定义才怪


这些写少个字符都不是问题所在。。。。可能是我复制过来的时候不小心造成的。
我改了一下,应该是头文件的重复包含问题。

#21