如何设置一个全局变量啊
要在每个源文件中都可见的
我的文件名是DATABASE
在DATABASE。H(就是哪个APP类的文件头)
中设置了一个STATIC BOOL BSUPER
以后每个源文件都包含这个头文件
以后在在一个DIALOG中设置了他为TRUE;
但是在另一个DIALOG中
虽然能用这个变量,但是就看不见上个DIALOG中设置的值了

解决方案 »

  1.   

    你把static 去掉看看。
    或者改成这样:

    BOOL BSUPER;
    放到DATABASE.cpp中,
    然后在DATABASE.h中加入
    extern BOOL BSUPER;
      

  2.   

    如果想设置全局变量不能使用static,如果使用static则这个变量只能在当前文件内是可见得,而对其他文件是不可见的,即使是变量名相同,也是不同的存储空间。
    而且,变量的定义一般情况下都放在.c或.cpp的文件里,而在相应的.h文件中声明。
    所以,在本例中,在.cpp文件中如下定义:
    BOOL BSUPER;在.h文件中如下声明:
    extern BOOL BSUPER;其他文件包含这个.h文件就可以了。
      

  3.   

    你在DATABASE.H设置全局变量是
    应该要在类外声明的.extern BOOL BSUPER;在.cpp里定义该变量.
    如果希望整个程序只一个拷贝,那就要在BSUPER前面加static或者则不加.
      

  4.   

    在stafx.h中:extern int t;
    在stafx.cpp中: int t=0;
      

  5.   

    将这个成员变量在CWinApp的派生类中声名,要用的时候就:
    CXXXWinApp *pApp=(CXXXWinApp*)::AfxGetApp();
    然后就可以通过这个指针访问这个数据成员了。
      

  6.   

    谢谢了
    用EXTERN确实问题就解决了
    我看见大家都没有分,我不会给大家,怎么给呢?
    不过为什么,STATIC不行呢,编译没问题,LINK的时候就通不过了
    不知道STATIC有什么缺陷