我定义了一个类CGlobal,在Global.h中加入如下代码#include "Users.h"  CUsers curUser;
因为我想让curUser成为全局变量,所以在stdAfx.h中加入如下代码#include "Global.h"
但是当我在别的文件中中想引用curUser变量时,加入了如下代码extern CUsers curUser;
并对该变量进行操作(错误与该操作无关)
可是却提示错误:
"class CUsers curUser" (?curUser@@3VCUsers@@A) already defined in HospitalSystemDlg.obj()请问这是什么原因,我所写的代码是不是有错误或者对方写错了,望高手指导!
(注:这是一个对话框的mfc程序,HospitalSystemDlg是主对话框)

解决方案 »

  1.   

    在Global.h中加入如下代码:
    #include "Users.h"extern CUsers curUser;在Global.cpp中加入如下代码:
    #include "Users.h"
    #include "Global.h"CUsers curUser;stdAfx.h中加入如下代码
    #include "Global.h" 当你在别的文件中中想引用curUser变量时,无需加入如下代码extern CUsers curUser; 直接可以使用 curUser,只要这个文件加入了对stdAfx.h的引用。
      

  2.   

    CUsers curUser; 放到Global.cpp文件中,任何一对{}之外其它如一楼所说
      

  3.   

      主要是头文件重复包含的问题,你可以用#ifndef _MY_H
                                          #deifine _MY_H
                                          ....
                                          #endif
    来处理。
      

  4.   

    这不是重复包含的问题,即使你加了这个也没有用,这时在多个cpp文件包含同一个头文件导致的问题。
    你可以看看http://blog.vckbase.com/arong/archive/2004/05/28/294.aspx
      

  5.   

    非常感谢,问题解决!
    在.h文件中添加如下代码:
    #include "Users.h"
    extern CUsers curUser;
    在.cpp文件中添加如下代码:
    CUsers curUser;
    这样即可
    但是一楼说在Global.cpp中还要添加#include "Users.h"
    因为#include "Users.h"已经包含在Global.h中了,所以在Global.cpp中应该是可以省略的吧
      

  6.   


    CUsers curUser; 
    这个放再global.cpp或者其他cpp,如果你不放global.cpp,global.cpp可以省略
      

  7.   

    我也碰到这个问题只在头文件中定义了CUsers curUser,在CPP中没有就出错误但是例子程序上却没有处错误太诡异了