一个MFC 对话框工程 有3个类
主对话框 是模态的对话框 类 CDIALOG1
非模态对话框 类 CDIALOG2
一个空类 ConfigConfig 类中 有个MAP 容器变量 定义代码如下public:
map<CString,_Config> m_Config;Config 类中有个DataUP()函数 操作改变 m_Config 的值 CDIALOG1,CDIALOG2 这两个类中都包含了Config类的头文件 CDIALOG1.CPP,CDIALOG2.CPP 中 都通过 定义个Config类的对象调用DataUP()修改m_Config的值我的本意是想把这个m_Config 变量创建为全局变量 然后这两个CDIALOG1.CPP,CDIALOG2.CPP 都能修改 m_Config的值,可实际代码运行的时候 CDIALOG1.CPP,CDIALOG2.CPP 中调用DataUP()修改m_Config的变量不是同一个,就像CDIALOG1.CPP,CDIALOG2.CPP 分别定义了个m_Config各改各的值。
请问下怎样才能让CDIALOG1.CPP,CDIALOG2.CPP 修改的都是Config 类中的m_Config。
主对话框 是模态的对话框 类 CDIALOG1
非模态对话框 类 CDIALOG2
一个空类 ConfigConfig 类中 有个MAP 容器变量 定义代码如下public:
map<CString,_Config> m_Config;Config 类中有个DataUP()函数 操作改变 m_Config 的值 CDIALOG1,CDIALOG2 这两个类中都包含了Config类的头文件 CDIALOG1.CPP,CDIALOG2.CPP 中 都通过 定义个Config类的对象调用DataUP()修改m_Config的值我的本意是想把这个m_Config 变量创建为全局变量 然后这两个CDIALOG1.CPP,CDIALOG2.CPP 都能修改 m_Config的值,可实际代码运行的时候 CDIALOG1.CPP,CDIALOG2.CPP 中调用DataUP()修改m_Config的变量不是同一个,就像CDIALOG1.CPP,CDIALOG2.CPP 分别定义了个m_Config各改各的值。
请问下怎样才能让CDIALOG1.CPP,CDIALOG2.CPP 修改的都是Config 类中的m_Config。
解决方案 »
- 添加属性页的时候出错
- 关于DateTimePicker控件时间显示/获取问题
- 我用GraphEdit构了一个捕捉图,可运行几秒后出现"The graph could not change state.采样的开始时间在其结束时间之后"是怎么回事啊?
- 疑难问题,高手请进,对话框中的树控件不响应右键菜单消息
- 怎样实现桌面图标的文字的透明显示?
- 大家看我这样错在什么地方呢?
- 2000开发的程序在98下退出时报KERNEL32.DLL出错,什么原因?急救!!!
- 求救SoftIce4.0怎样在Windows2000(Ver 2195)上启动?请SoftIce前辈指教!谢谢!
- CPalette的成员函数FromHandle怎样使用??
- 关于dialog
- MFC问题!!!!
- 临界区比事件效率高多少呀?
而在CDIALOG2.CPP中声明extern Config g_config;表示用到的变量是其他cpp定义的,这样就保持操作的是同一个了。还有第二种就是用的设计模式里面的单例模式。在Config类中定义一个函数,比如:
static Config* GetInstance()
{
static Config config;
return &config;
}然后再另外两个Cpp中都调用这个函数获取其指针,也能实现同样的效果