MFC定义了多种状态信息,这里要介绍的是模块状态、进程状态、线程状态。这些状态可以组合在一起,例如MFC句柄映射就是模块和线程局部有效的,属于模块-线程状态的一部分。

模块状态

这里模块的含义是:一个可执行的程序或者一个使用MFC DLL的DLL,比如一个OLE控件就是一个模块。

一个应用程序的每一个模块都有一个状态,模块状态包括这样一些信息:用来加载资源的 Windows实例句柄、指向当前CWinApp或者CWinThread对象的指针、OLE模块的引用计数、Windows对象与相应的MFC对象之间的映射。

m_pModuleState 指针是线程对象的成员变量,指向当前模块状态信息(一个AFX_MODULE_STATE结构变量)。当程序运行进入某个特定的模块时,必须保证当前使用的模块状态是有效的模块状态──是这个特定模块的模块状态。所以,每个线程对象都有一个指针指向有效的模块状态,每当进入某个模块时都要使它指向有效模块状态,这对维护应用程序全局状态和每个模块状态的完整性来说是非常重要的。为了作到这一点,每个模块的所有入口点有责任实现模块状态的切换。模块的入口点包括:DLL的输出函数;OLE/COM界面的成员函数;窗口过程。

AFX_MODULE_STATE作用相关推荐

  1. Object的finalize()方法的作用是否与C++的析构函数作用相同

    Object的finalize()方法的作用是否与C++的析构函数作用相同 public class Finalization {private static Finalization finaliz ...

  2. 浅显易懂 Makefile 入门 (02)— 普通变量和自动变量定义、使用($@、$^、$< 作用)、变量覆盖 override、变量的来源 origin

    1. 变量的定义 Makefile 文件中定义变量的基本语法如下: 变量的名称=值列表 变量的名称可以由大小写字母.阿拉伯数字和下划线构成.等号左右的空白符没有明确的要求,因为在执行 make 的时候 ...

  3. 【B/S实践】解决:vs中修改样式表后不起作用的问题

    缓存,有好多,cpu和内存之间的三级缓存,浏览器内的缓存! 缓存是因为速率不对等,通过缓存来加速内容的显示! 今天我在敲牛腩的时候遇到一个问题,找了半小时,才发现是缓存导致的问题! 试着运行aspx文 ...

  4. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  5. 机器学习——标准化/归一化的目的、作用和场景

    对每个特征进行归一化处理,使得每个特征的取值缩放到0~1之间.这样做有两个好处: 模型训练更高效. 特征前的权重大小可代表该变量对预测结果的贡献度(因为每个特征值本身的范围相同). (一)归一化的作用 ...

  6. Linux操作系统下文件作用

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...

  7. python sys.argv[] 的作用

    sys.argv[]是什么 argv 是sys库里面的所以使用的 需要先引入sys (使用import sys) sys.argv[]的作用 从程序外获取参数,怎样理解呢,例如在终端中运行test脚本 ...

  8. C++ namespace 的作用以及使用

    namespace 是什么: 命名空间(namespace)是一种描述逻辑分组的机制,可以将按某些标准在逻辑上属于同一个任务中的所有类声明放在同一个命名空间中.标准C++库(不包括标准C库)中所包含的 ...

  9. Android Environment 的作用以及常用的方法

    从源码中可以看到这样一句话 Provides access to environment variables Environment的作用是:  提供对环境变量的访问 常见的方法 //外部存储设备的当 ...

最新文章

  1. 中国 AI 出海,大华等企业助力联合国制定面部识别标准
  2. 教育部拟规定:中小学不得公开学生个人的考试成绩名次
  3. Python笔记 【无序】 【一】
  4. [MySQL 5.6] MySQL 5.6 group commit 性能测试及内部实现流程
  5. 题目4:EXCEL排序
  6. AD显示隐藏管脚——谈mos管封装的一个坑处
  7. python学习笔记之函数(方法)(四)
  8. 开发者需要的 9 款代码比较工具
  9. 通道抠图蒙版置入背景(抠图换背景)
  10. 山东大学项目实训(二十七)—— 微信小程序开发总结,一年时间真的可以改变一个人很多
  11. 工业控制信息系统中的商用密码应用思考
  12. 一文了解肠-器官轴,肠好身体好
  13. 前端学习——静态网页制作
  14. HTTP和AJAX重点知识
  15. 从零学习VH6501(八) —— 采样点测试
  16. 【Unityc#专题篇】—基础章题单实践
  17. 硬件-ESP32S模块资料介绍
  18. 纳瓦尔宝典 健康、爱和使命,以此为序,其他的都不重要 不把自己太当回事
  19. C++上机实验六第2题
  20. docker安装calibre打造数字图书馆: 在线管理pdf等电子图书

热门文章

  1. python新手入门——————字符串函数(2)
  2. C++模板 —— 万字带你了解C++模板(蓝桥杯算法比赛必备知识STL基础)
  3. 设计模式【2.1】-- 简单工厂模式怎么演变成工厂方法模式?
  4. 从理解透视到场景构图
  5. Unity 3D模型展示之webGL平台展现
  6. 周易六十四卦——屯卦
  7. TCP连接耗尽攻击异常报文攻击与防御
  8. lambda分组集合中list和set区别
  9. Mac没有右Control的解决办法
  10. [初级理论]给老婆做测试培训-02