我在一个名为"家谱"的MFC应用程序中,新增了一个对话框类MyDlg
在MyDlg.cpp中引入"家谱View.h"之后
为什么在"家谱DOC.H"中的CMyDoc* GetDocument();处
系统说要"*"号之前,也就是CMYDOC之后加";"分号呢.

解决方案 »

  1.   

    多重包含问题。
    改:
    #include "家谱View.h"

    class C家谱View;
      

  2.   

    要把"家谱View.cpp"里面"家谱View.h"以上的那些h都在mydlg.cpp中include就可以了。
      

  3.   

    二楼YONGDU兄的说法没看懂,四楼风兄的说法到是可行.我在MyDlg.h中定义了一个全局变量,static char flag='o';
    在家谱View.cpp中引入MyDlg.h后,对这个flag作了修改,
    但返回到MyDlg.cpp中后,flag的值仍然没变
    是不是MyDlg.cpp中看不到家谱View.cpp中的变化呢果真如此,要怎么做才能在MyDlg.cpp可以使用在家谱View.cpp中改变过的flag呢
      

  4.   

    要怎么做才能在MyDlg.cpp可以使用在家谱View.cpp中改变过的全局变量呢
      

  5.   

    static 变量的生存期好像是本文件,也就是说在MyDlg.cpp不能使用View.cpp中
    定义的静态变量。你的做法完全违背了面向对象的原则。
      

  6.   

    没有,我在MyDlg.h中定义的在家谱View.cpp中完全可看到,因为我在家谱View.h中引入了MYDLG.H头文件啊,只是不会返回被改变了的STATIC 变量.