编译的时候总是出这种异常,如何解决啊死了!

编译的时候总是出这种错误,怎么解决啊?急死了!!!!
Linking...
RevereCardHJDlg.obj   :   error   LNK2005:   "class   _com_ptr_t <class   _com_IIID <struct   _Connection,&struct   __s_GUID   _GUID_00000550_0000_0010_8000_00aa006d2ea4>   >   m_pConnection "   (?m_pConnection@@3V?$_com_ptr_t@V?$_com_IIID@U_Connection@@$1?_GUID_00000550_0000
_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@A)   already   defined   in   RevereCardHJ.obj
Debug/RevereCardHJ.exe   :   fatal   error   LNK1169:   one   or   more   multiply   defined   symbols   found
Error   executing   link.exe.

RevereCardHJ.exe   -   2   error(s),   0   warning(s)


------解决方案--------------------
有一个变量声明在头文件里了,在CPP或C文件里INCLUDE 进来后就会这样,
应该在头文件里加上extern 在CPP 里在定义
------解决方案--------------------
m_pConnection重定义.
RevereCardHJDlg与RevereCardHJ都定义了
------解决方案--------------------
变量的声明和定义是两个概念。
你定义的是全局变量,链接时要给各全局变量分配空间,而各个cpp文件都包含了头文件中对这个变量的定义,因此出现了重名的全局变量。
如果头文件是全局变量的声明,编译链接时就不会再分配空间,也就没那个重名的错误了

呵呵,大概就是这个意思,表述的不太严格:)