在VC中,如何实现一个全局变量CString a程序在所有的类中都可以使用?

解决方案 »

  1.   

    在其他类中
    CYourProjectApp * pApp=(CYourProjectApp*) AfxGetApp();
    pApp->a;
      

  2.   

    对了。你要把你的CString a;
    放到 CYourProject.h 里
      

  3.   

    你都说是全局变量了, 
    在一个CPP中定义: CString str;
    在别的CPP中:
    extern CString str;然后就可以在别的CPP中用了.
      

  4.   

    我不太明白,AfxGetApp()得到的是我的App的类,但a并不是App类的成员变量啊?我的意思是CString a应该如何定义,使得a在所有的类中都可以被使用,使a成为一个全局变量?
      

  5.   

    就把CString a作为App的一个成员变量啊,在任何地方都可以用,因为APP是全局的,
      

  6.   

    forever:
    是在一个.cpp中定义,如果在另一个类中要用,在这个类的.cpp中加上extern CString a,还是在他的.h中加?
      

  7.   

    就是在CYourProject.h 里定义就可以了。
      

  8.   

    那就在APP类中定义此变量即可,因为AfxGetApp()是个全局的函数,在任何类中都可以得到APP类,当然也就得到你的变量了。
      

  9.   

    可以把CString str定义在某一个cpp中
    放在最开头就可以了,不要在某个类中
    然后其他cpp中开头用extern CString str定义,
    这样编译后obj link的时候就会把str作为全局变量了。
      

  10.   

    forever和其他的朋友给我提供了两种办法,我试了都可以,谢谢大家!
      

  11.   

    加到 CWinApp NEAR theApp; 后面不就行了
      

  12.   

    在CYourProject.h 里定义就可以了,何必麻烦theApp呢?
      

  13.   

    在stdafx.cpp里边
    CString a;
    在类里边
    extern CString a;
      

  14.   

    HANDLE hMutex=::CreateMutex(NULL,TRUE,"SoWantRec");
        if (hMutex!=NULL)
        {
    if (GetLastError()==ERROR_ALREADY_EXISTS)
    {
    AfxMessageBox("已经有一个程序运行");
    return FALSE;
    }
        }
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]