“正被停用的激活上下文不是最近激活的”的错误的解决
来源:互联网 发布:2016年进出口数据分析 编辑:程序博客网 时间:2024/05/17 02:32
作者:朱金灿
来源:http://blog.csdn.net/clever101
前几天同事叫我帮忙看一个问题,问题是这样的:MFC程序中创建了一个停靠栏窗口之后窗口跟视图窗口贴在一块是透明的,然后程序退出时崩溃。经过查看堆栈,发现错误信息是:正被停用的激活上下文不是最近激活的
开始我对这个错误有点百思不得其解,通过查看他的代码,发现了问题所在:原来他在CMainFrame类的OnCreate函数里使用停靠栏类的局部变量创建停靠栏窗口。这样做有什么问题呢?大家知道,MFC的窗口类都是支持动态创建的,而MFC的动态创建机制的一步是将窗口类信息(如名字)之类保存在一个全局链表里(具体请见《深入浅出MFC》)。而使用窗口类的局部变量创建窗口意味着一处这个函数这个变量就析构了,而窗口类信息(如名字)之类还保存在全局链表里。当这个链表最后析构时发现窗口已经无效了,自然崩溃了。明白了这点,我叫同事将停靠栏类的局部变量改为CMainFrame类的数据成员,这样确保它是全局的有效对象。由此可以得知,支持MFC的动态创建的对象都必须是全局有效的对象,否则在程序退出时必然崩溃。
0 0
- “正被停用的激活上下文不是最近激活的”的错误的解决
- 正被停用的激活上下文不是最近激活的
- 正被停用的激活上下文不是最近激活的
- 正被停用的激活上下文不是最近激活的
- 正被停用的激活上下文不是最近激活的
- 0xC015000F: 正被停用的激活上下文不是最近激活的
- 0xC015000F:正被停用的激活上下文不是最近激活的
- “正被停用的激活上下文不是最近激活的”暂时修改方法。
- 0xC015000F:正被停用的激活上下文不是最近激活的
- 0xC015000F: 正被停用的激活上下文不是最近激活的。
- 0xC015000F: 正被停用的激活上下文不是最近激活的。
- 0xC015000F:正被停用的激活上下文不是最近激活的
- MFC中0xC015000F:正被停用的激活上下文不是最近激活的
- 0xC015000F:正被停用的激活上下文不是最近激活的
- 0xC015000F:正被停用的激活上下文不是最近激活的
- 0xC015000F:正被停用的激活上下文不是最近激活的
- 正被停用的激活上下文不是最近激活的 怎么办
- 当str.Format()遇到0xC015000F:正被停用的激活上下文不是最近激活的
- C# ArcEngine获取坐标系、投影类型、计量单位、带号、几度分带、精度
- 二分入门——poj 2456 aggressive cows
- AndroidStudio 快捷键总结
- apache服务器的相关tips
- 4. 流程控制语句
- “正被停用的激活上下文不是最近激活的”的错误的解决
- 支付宝在线支付
- js如何实现拆分字符串并依次输出
- Java Random类源码分析
- 【洛谷2022】 神奇数学题
- 朱刘算法
- R语言入门-R语言环境安装与Rstudio安装
- 基于Zookeeper的服务注册与发现
- C语言单链表