问题是这样的:
我的对话框程序里用了子对话框,在主对话框里定义了这个子对话框类的一个变量
比如说是CDownOption m_dlgDownOption;
但明明我加了这个CDownOption的头文件了,每次编译都有如下错误
syntax error : missing ';' before identifier 'm_dlgDownOption'
error C2501: 'CDownOption' : missing storage-class or type specifiers
error C2501: 'm_dlgDownOption' : missing storage-class or type specifiers
这还不是奇怪的,奇怪的是我把这行注释掉之后编译(当然还有问题,因为程序里用了
没有定义的变量)然后再去掉注释编译就通过了,运行没问题。
这是怎么回事啊,高手帮忙!!

解决方案 »

  1.   

    你应该将include "**.h"放在你定义CDownOption m_dlgDownOption
    的头文件中
    因为你定义的CDownOption m_dlgDownOption头文件在别的类中被包含了
      

  2.   

    你少了头文件
    #include "DownOption.h"
      

  3.   

    把类CDownOption 的定义的头文件包含到你声明的头文件里.
      

  4.   

    浅论:在主对话框头文件中声明类CDownOption;如:class CDownOption;其位置在主对话框类定义之前;
      

  5.   

    我已经添加了这个头文件了
    CDownOption m_dlgDownOption;就是在这个头文件里定义的变量
    CDownOption.h已经添加了
      

  6.   

    愿意的话,把你的代码发来看看。
    [email protected]
      

  7.   

    很急,连续发了3个100分的帖子没有人回答,帮个忙吧。
    http://www.csdn.net/expert/topic/799/799889.xml?temp=.2711603
    http://www.csdn.net/expert/topic/799/799789.xml?temp=.6369135
    http://www.csdn.net/expert/topic/795/795315.xml?temp=.9500238谁能解决,全部可用分相送!
      

  8.   

    你是不是交叉包含了
    类A包含了B,B又包含了A。
      

  9.   

    你交叉包含了
    类A包含了B,类B又包含了A.对吗?
      

  10.   

    o~~~~~~~~~~~~对,想起来了,
    上次测试时改的,谢谢_liang!
    不过,如果我想在子对话框里调用主对话框的函数改怎么办?
      

  11.   

    你把#include "CMainDlg.h"改成
    class CMainDlg;
      

  12.   

    搞定了,谢谢
    等pcman会信后就结帐
      

  13.   

    哦,已经搞定了,呵呵。
    刚收到你的信,是交叉引用的问题。
    _liang_(liang)说得对。出现交叉引用时,一般是用class CClass1;申明。但是有一点要注意,此时只能定义指针(CClass1 *pobject1;),而不能定义对象(CClass1 object1;是不合法的)。题外话,你的程序不存在这个问题。
      

  14.   

    哦,已经搞定了,呵呵。
    刚收到你的信,是交叉引用的问题。
    _liang_(liang)说得对。出现交叉引用时,一般是用class CClass1;申明。但是有一点要注意,此时只能定义指针(CClass1 *pobject1;),而不能定义对象(CClass1 object1;是不合法的)。题外话,你的程序不存在这个问题。
      

  15.   

    请大家关注今日14:12的一个Document_view 的问题!