MFC共享全局变量

在MFC项目中,通过定义一个.h文件来集中管理全局变量并包含到各文件中,但在测试时遇到链接错误LNK2005,提示全局变量已定义。问题出在每个包含该头文件的类中,全局变量被当作类的成员初始化,导致重复定义。尝试使用static修饰全局变量,但问题未解决。寻求解决方案。
摘要由CSDN通过智能技术生成
去网上找资料 看到一条
---------
自己定義一個.h文件,然後把所有的全局變量放在其中,在每個使用變量的文件中include  
好像一般都是这么做的,尤其是一些比较大的工程,这样在加其他的全程变量是很方便!
----------
但是 去测试的时候一直报错
 error LNK2005: "int sNumOfStudent" (?sNumOfStudent@@3HA) already defined in XXX.obj
 一想就觉得不对。
 分析:
   有一个 mData.h文件 包含了一些全局变量、
---mData.h

int s_Int=0;
CString s_Mystr ="";


 其余的对其进行包含
------class a
 

#include "mData.h"
#include "a.cpp"
class a
{
public:
  void getData()
   {s_Int=1;}
}

这里会在a.obj中对s_Int和s_Mystr进行初始化 被当做了class a的一个全局变量

-------class b

#include"mData.h"
#include"b.cpp"
class b
{
public:
   getData()
    {s_Int=2;}
}

这里也把s_Int当做自己的类变量,但是s_Int是全局变量,所以会报错redefined..

所以 。。求教这种方法!!
 请指导。 是不是要设置静态的??加static?测试过  依然会报错啊
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值