热情软件屋

 

在基于MFC的应用程序,如何定义一个全局变量


编号:QA002060
建立日期: 1999年11月19日 最后修改日期:1999年11月19日
所属类别:

TangYunhai:
    操作系统: Win98,NT
    编程工具: VC++
    问题: 1.基于MFC的SDI应用程序,如何申请一个全局CString变量?
     How do I define a global CString variable,in SDI application of MFC?
    2.如何在主框架生成之前,初始化这个变量?
     How do I initialize this varibale,before the Main frame generated?

回答:

    你可以在sdi.h中加入变量定义:
    extern CString sGlobal;
    然后在sdi.cpp中加入:
    CString sGlobal;
    初始化可以在CSdiApp::InitInstance中进行。
    如果哪个模块需要调用全局变量,只需要加入
    #include "sdi.h"
    就可以了。
    实际上在类、函数之外声明的变量都是全局变量,所以如果在两个不同的.cpp中声明同名的变量,则在链接时肯定会报告错误。如果要避免这种潜在的冲突,可以在定义变量定义前加static,如:
    static int nValue;
    这样,在声明这个变量以外的.cpp中nValue不能访问,也不会引起冲突。
    
    相关问题:
    QA001737 "在C++中如何使用全局变量"

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio