我下载了一个Visual c++6.0建的工程,上面有一个对话框,我想通过类向导为对话框上的编辑框加一个成员变量m_text。但是类向导上没有这个对话框对应的类。我自己手动加了这个变量m_text,编译正确,但运行错误。请问怎么回事?卫什么类向导的class name中没有这个类名?为什么出现错误?对话框类定义代码:
class CLabelPropertyDialog : public CDiagramPropertyDlg
{// Construction
public:
CLabelPropertyDialog(CWnd* pParent = NULL);   // standard constructor
~CLabelPropertyDialog(); virtual void SetValues();// Dialog Data
//{{AFX_DATA(CLabelPropertyDialog)
enum { IDD = IDD_DIALOG_PROPERTY_LABEL };
CString m_text;
//}}AFX_DATA// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CLabelPropertyDialog)
protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
//}}AFX_VIRTUAL// Implementation
protected: // Generated message map functions
//{{AFX_MSG(CLabelPropertyDialog)
virtual void OnOK();
virtual void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()};对应cpp部分代码:
void CLabelPropertyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLabelPropertyDialog)
DDX_Text(pDX, IDC_EDIT_TEXT, m_text);
//}}AFX_DATA_MAP
}

解决方案 »

  1.   

    6.0有bug
    丢类比较正常
    不过手动加肯定是没有问题的
    你报什么错?
      

  2.   

    如果对应的Edit控件的ID为IDC_EDIT_TEXT正确无误,那么您手动添加的两处代码应该是没有问题,运行时出现的错误还需要进一步定位为什么类向导的class name中没有这个类名?这个是因为工程配置文件出现问题了,其中可能对该类的描述配置不对,请用notepad.exe(文本文档)打开工程目录下的.dsp文件,在其中查找对应的类名看看如果可以,请将该工程发过来看一下,QQ13076933
      

  3.   

    关于类向导中不显示类名,可以做如下尝试:
    1、在File View中查看是否添加了该类的.cpp 和 .h文件
    2、关闭工程,删除工程下的.ncb文件再打开工程试试至于运行的错误,猜不到,调试吧
      

  4.   

    你关联CString对象没有问题,你Debug调试一下,看看哪里错误
      

  5.   

    类向导只认从CDialog直接派生的类,间接派生的不认。CDialog::DoDataExchange(pDX);改成CDiagramPropertyDlg::DoDataExchange(pDX);
      

  6.   

    一般调试时会根据修改的递增量进行考虑,根据您描述的修改内容,该内容极简单,可能产生的其它附带影响非常少,故我认为您修改的内容不应该令程序产生错误您可以试一下,重新Build->Clean一下工程,然后重新编译运行
      

  7.   

    关闭工程,将.clw删去,然后打开工程,打开类向导,会提示“类向导不存在,从source生成”,点击“确定”,输入类向导名称,就可以生成新的类向导了。