ATL Thunk机制学习
来源:互联网 发布:杭州谷川服饰好吗知乎 编辑:程序博客网 时间:2024/06/07 01:10
ATL模板类库使用Thunk技术来实现与窗口消息相关联的HWND和负责处理消息的对象的this指针之间的映射。
ATL中窗口类注册时,窗口过程函数缺省值都是StartWindowProc,当创建窗口产生第一条消息时将调用此函数。StartWindowProc是CWindowImplBase的一个静态成员函数,它的工作是建立CWindowImpl派生对象的HWND与对象的this指针之间的映射。在新的HWND被缓存到WindowImpl派生对象的成员数据中之后,对象真正的窗口过程将替代StartWindowProc窗口过程,并且窗口过程参数HWND被替换成对象指针值。
在Init()函数中这组汇编指令被初始化为下面的指令:
mov dword ptr [esp+0x4], pThis
jmp (int)proc - ((int)this+sizeof(_WndProcThunk))
它完成的功能是,用窗口类的指针pThis代替窗口句柄hWnd(esp+0x4中放的就是hWnd),然后跳转到传入的proc函数处((int)proc - ((int)this+sizeof(_WndProcThunk))是proc与thunk之间的距离)。
以下是关于Thunk技术测试的例子
- ATL Thunk机制学习
- ATL中的Thunk机制学习
- ATL thunk机制
- ATL thunk机制
- ATL中的Thunk机制学习
- ATL Thunk机制的一个例子
- ATL之thunk技术
- ATL Thunk技术简单解析
- 几句话概括atl thunk技术
- thunk
- THUNK
- Thunk
- 学习下 WTL 的 thunk
- ATL学习
- ATL 学习
- Thunk,thunk,thunk
- ATL窗口继承实现机制
- ATL学习笔记01
- symbian 程序的打包(Carbide.c++_v2.0.exe+S60-SDK-0616-3.0-mr)
- 笑一笑十年少
- 空当接龙纸牌生成算法
- phpmyadmin (Invalid hostname for server 1. Please review your configuration)
- 关于域名管理别名的设置
- ATL Thunk机制学习
- Mac OS X:禁止崩溃报告
- JfreeChart和struts2集成方案
- 如果要学习JSON,
- DragonLibrary.Controls控件库 1.0.0.0 for VS2003 & 源代码
- escape、encodeURI、encodeURIComponent等方法的区别
- 将一个对话框复制到另一个VC开发的程序中
- Antlr在Windows XP的安装及配置
- showModalDialog()、showModelessDialog()方法使用详解