不要在.h文件中声明变量
在.cpp 的头上加入
int g_;
然后再其他要用到变量的cpp文件中加上
extern int g_;
就可以了。

解决方案 »

  1.   

    在头文件中声明变量名前加上关键字 extern 试试
      

  2.   

    我在头文件variable.h中使用的是这种格式:
    extern "C"
    {
        BOOL captureflag=FALSE;
        CWinThread *thr;
        ..........
    }
    第一次运行的时候通过了,但是后来运行又出现:
    MainFrm.obj : error LNK2005: _captureflag already defined in DlgPacketPrint.obj

    之类的错误,请问用extern "C"这样定义全局变量不行吗?
      

  3.   

    哈哈,原来我的也是这样,不过现在没有了,在别的文件中用到这些全局变量时,你不应该包含这个头文件(定义全局变量的),应该把你要用到的变量,用extern 声明一下,就可以了。
      

  4.   

    在.h中:#ifndef _MYINCLUDE
    #define _MYINCLUDE
    extern BOOL captureflag;
    #endif在.cpp中:BOOL captureflag;
      

  5.   

    我试过了,还是不行呀?我用的是在头文件里用extern声明,然后再其它文件里用:extern使用,还是那样的错误!
      

  6.   

    Mr_Ldh(Mr_Ldh),谢谢你,我已经试过你说的那种方法了,不过还有个问题:
    我在一个.cpp中不用extern声明,而是直接如:BOOL captureflag,则全局变量captureflag在这里面可以用;但是到了另一个.cpp中,如果直接这样:
    BOOL captureflag还是不行,还要加上extern,这是什么原因呢?