摘要: 在MFC的listctrl控件中动态添加按钮,并解决显示刷新问题
阅读全文
摘要: 本文为线程本地存储TLS系列之实现探究。
我们在上一篇线程本地存储TLS(Thread Local Storage)的原理和实现——分类和原理中曾经说过TLS可以分为两类:静态TLS和动态TLS。然后又分别说明了两者在程序实现时的用法,并且还说明了windows对这两类TLS的实现原理,我们本文的目的是从底层实现的角度深入探究,深刻理解原理。
阅读全文
摘要: 我们知道在一个进程中,所有线程是共享同一个地址空间的。所以,如果一个变量是全局的或者是静态的,那么所有线程访问的是同一份,如果某一个线程对其进行了修改,也就会影响到其他所有的线程。不过我们可能并不希望这样,所以更多的推荐用基于堆栈的自动变量或函数参数来访问数据,因为基于堆栈的变量总是和特定的线程相联系的。
不过如果某些时候(比如可能是特定设计的dll),我们就是需要依赖全局变量或者静态变量,那有没有办法保证在多线程程序中能访问而不互相影响呢?答案是有的。操作系统帮我们提供了这个功能——TLS线程本地存储。TLS的作用是能将数据和执行的特定的线程联系起来。
实现TLS有两种方法:静态TLS和动态TLS。以下我们将分别说明这两类TLS。
阅读全文
摘要: 本文不是描述怎样编写dll程序,也不是说明dll在windows系统的意义。我们的目的是确认dll加载到进程空间的一些模糊的概念。
一、程序加载dll的两种情况:
二、从MSDN文档来研究操作dll的API
三、关于引用计数递减到0会导致模块卸载映射的问题
阅读全文
摘要: 计算机与操作系统启动原理
转载自:http://wolfhacker.blogchina.com/wolfhacker/1719979.html
阅读全文
摘要: 截获全局鼠标消息研究:1、SetWindowsHookEx方法;2、SetCapture方法
阅读全文
摘要: 关于消息队列有两种,一种是系统消息队列,另一种是线程消息队列。windows应用程序的运行需要依靠外部发生的事件来驱动。应用程序通过输入消息来接受输入。操作系统负责监视所有设备并将输入消息放入一个先进先出的队列中,即系统消息队列。接着,windows从系统消息队列中去走一条消息,确定目的窗口,并将消息送入创建该窗口的消息队列中。
阅读全文