VC数据库开发日记4:MFC框架下的全局变量的临时解决方案
2008-02-29 11:24
344 查看
MFC和很多C++书上说的全局变量不一样。不是仅在写在函数外就可以了,MFC的运行机制完全不一样。我对MFC的机理还没做到完全的理解,而现在两个窗体之间需要有数据“通信”,也就是需要一个公共变量来做媒介,时间十分紧张,容不得我慢慢的理解然后解决。
那么我只有有现有的知识来解决了,ok废话少说,下面开始:
全局变量的特点就是在程序的运行期间都存在,而记得在看候杰书上曾经提到:
MFC有一个CXXApp(XX为工程的名字,如我这个就是CRSApp)的类,还有一个这个类的对象,然后好像在“MFC六大关键技术仿真”中提到有一个AfxGetApp()这个全局函数可以得到当前这个对象的指针,那么只有在App类上下点功夫了。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/OMOKIMI/Snap3.jpg)
在CRSApp加上一个类的成员变量我这里用PubCurID做例子(RS就是工程的名字,具体情况不一样。)。
然后在使用的地方
![](http://p.blog.csdn.net/images/p_blog_csdn_net/OMOKIMI/Snap4.jpg)
使用这个相应类的指针就接收就可以了。
解决感受:
这个解决方案不是很好,但是的确有效,缺点明显在CRSApp的成员中加上了没什么关系的变量,可能回影响程序的直观行,虽然也考虑过定义一个H文件然后在用和定义的地方都include进去。而然,事情远远超过我的预料,这个办法不是那么有用:extern 到处用,还是到处抱错,我意识道可能会导致全局的问题,继而程序不可维护因此放弃。“真理是有条件的”恐怕说的就是这么回事吧。
那么我只有有现有的知识来解决了,ok废话少说,下面开始:
全局变量的特点就是在程序的运行期间都存在,而记得在看候杰书上曾经提到:
MFC有一个CXXApp(XX为工程的名字,如我这个就是CRSApp)的类,还有一个这个类的对象,然后好像在“MFC六大关键技术仿真”中提到有一个AfxGetApp()这个全局函数可以得到当前这个对象的指针,那么只有在App类上下点功夫了。
![](http://p.blog.csdn.net/images/p_blog_csdn_net/OMOKIMI/Snap3.jpg)
在CRSApp加上一个类的成员变量我这里用PubCurID做例子(RS就是工程的名字,具体情况不一样。)。
然后在使用的地方
![](http://p.blog.csdn.net/images/p_blog_csdn_net/OMOKIMI/Snap4.jpg)
使用这个相应类的指针就接收就可以了。
解决感受:
这个解决方案不是很好,但是的确有效,缺点明显在CRSApp的成员中加上了没什么关系的变量,可能回影响程序的直观行,虽然也考虑过定义一个H文件然后在用和定义的地方都include进去。而然,事情远远超过我的预料,这个办法不是那么有用:extern 到处用,还是到处抱错,我意识道可能会导致全局的问题,继而程序不可维护因此放弃。“真理是有条件的”恐怕说的就是这么回事吧。
相关文章推荐
- 在VC++MFC下如何定义全局变量和全局函数
- MFC 利用小型数据库Access 少步惆 教你用VC开发
- 在VC++MFC下如何定义全局变量和全局函数
- 在VC++MFC下如何定义全局变量和全局函数
- [置顶] Duilib中加载MFC等其它框架开发的OCX崩溃的解决方案
- vc数据库开发日记1
- vc数据库开发日记2
- VC数据库开发日记3: MSHFlexGrid 条纹样式显示
- 黑马程序员_学习日记50_619数据库开发及ADO.Net(临时表、表变量、视图、变量、if…else…和while、事务、存储过程、触发器)
- VC数据库开发日记6: ACCESS中时间类型的查询和正确显示
- VC在MFC下定义全局变量和全局函数
- VC数据库开发日记5: CSTring和COleDateTime相互转化
- MFC 利用小型数据库Access 少步惆 教你用VC开发
- 在VC++MFC下如何定义全局变量和全局函数
- VC在MFC下定义全局变量和全局函数VC++
- ios开发--iOS端数据库解决方案分析
- opengl与vc(mfc)开发时的注意点
- 孙鑫VC++讲座笔记-(3)MFC程序框架的剖析
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- 技术要求 微软平台技术 Web技术 网络协议开发 技术框架 微软产品 解决方案