zoukankan      html  css  js  c++  java
  • “正被停用的激活上下文不是最近激活的”的错误的解决

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

           前几天同事叫我帮忙看一个问题,问题是这样的:MFC程序中创建了一个停靠栏窗口之后窗口跟视图窗口贴在一块是透明的,然后程序退出时崩溃。经过查看堆栈,发现错误信息是:正被停用的激活上下文不是最近激活的

     

            开始我对这个错误有点百思不得其解,通过查看他的代码,发现了问题所在:原来他在CMainFrame类的OnCreate函数里使用停靠栏类的局部变量创建停靠栏窗口。这样做有什么问题呢?大家知道,MFC的窗口类都是支持动态创建的,而MFC的动态创建机制的一步是将窗口类信息(如名字)之类保存在一个全局链表里(具体请见《深入浅出MFC》)。而使用窗口类的局部变量创建窗口意味着一处这个函数这个变量就析构了,而窗口类信息(如名字)之类还保存在全局链表里。当这个链表最后析构时发现窗口已经无效了,自然崩溃了。明白了这点,我叫同事将停靠栏类的局部变量改为CMainFrame类的数据成员,这样确保它是全局的有效对象。由此可以得知,支持MFC的动态创建的对象都必须是全局有效的对象,否则在程序退出时必然崩溃。

  • 相关阅读:
    mui 页面跳转
    mui 下拉刷新
    mui 上拉加载更多
    mui 页面传值
    mui 监听app运行状态
    mui webview操作
    mui ajax方法
    ionic 图片加载失败,显示默认图片代替
    mui 侧滑菜单
    ionic中关于ionicView 的生命周期
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469775.html
Copyright © 2011-2022 走看看