我刚学VC以前用的是BC,现在的程序不是太会写,请多多指教我在XXX.H中定义了
extern class CXXXView *g_pXXXView;在XXX中写了
class CXXXView *g_pXXXView = NULL;
这个是全局变量在CXXXView中可以用
g_pXXXView->XXX();但在我其它的类中调用它
g_pXXXView->XXX();
这不得了,它说我没有初始化,请问我要怎样修改?

解决方案 »

  1.   

    没有初始化还是没有定义?如果没有加头文件XXX.H的话,没有定义的错误倒是会有的
      

  2.   

    楼主这样试试可以不
    extern class CXXXView *g_pXXXView = new CXXXView;
      

  3.   

    extern class CXXXView *g_pXXXView;
    最好不要放在XXX.H中,如果你非要放就要用
    #ifdef
    #endif
    这样的编译条件进行控制。
      

  4.   

    有#include 的它的提示是:
    error C2027: use of undefined type 'CXXXView'
            e:\XXX.h(64) : see declaration of 'CXXXView'
    E:\XXX\Line.cpp(81) : error C2227: left of '->XXX' must point to class/struct/union
      

  5.   

    需要#include "***View.h"在哪个文中?
      

  6.   

    extern 这里表示变量是在外部声明的!!需要变量申明的头文件
      

  7.   

    我有include XXX.h的
    是全个workspace的CPP文件中都有它的
      

  8.   

    1. 在xxx.h 中include XXX.h2. 在xxx.h 中写:class CXXXView;
      

  9.   

    1. 在xxx.h 中include XXX.h
    在VC中include xxx.h是自动生成的,它位于CPP文件中,我试过把它拷到H文件中,还是一样不成功。2. 在xxx.h 中写:class CXXXView;
    没有效果,也是同样的错误
      

  10.   

    也可以在使用前面空白位置加上extern CXXXView *g_pXXXView ;class 就不要了吧,
      

  11.   

    在类中调用g_pXXXView->XXX()前聲明extern pXXXView應該就可以了吧
      

  12.   

    他的提示不是没初始化,是没发现这个类,
    你想要获得一个VIEW类的指针,然后调用这个类成员,如果是这样
    直接获得这个VIEW类指针,
    用extern不能控制文档关系,
      

  13.   

    在类中定义全局变量
    在需要用的地方,extern
      

  14.   

    extern的用法,参看向导生成的代码中extern C..App theApp;