Thunk : 将一段机器码对应的字节保存在一个连续内存结构里,
然后将其指针强制转换成函数. 即用作函数来执行.
这份代码用于将C语方的回调函数转换为具有this指针的C++成
员函数.
在Windows系统编程中, 可以将一些系统回函数封装成C++类成
员函数, 例如
// 定时器回调函数
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg,
UINT_PTR idEvent, DWORD dwTime);
// 线程回调函数
DWORD WINAPI ThreadProc(LPVOID lpParameter);
// 窗口过程回调函数
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg,
WPARAM wParam, LPARAM lParam);
2008-10-22修正了在Windows XP SP2, Windows server 2003环
境下开启DEP功能后运行崩溃的BUG
附件为VC++6.0源码及测试程序
欢迎拍砖, 但希望更多的C++程序使用它.
谢谢!
- 标 题:【代码之美】【自主命题】利用Thunk技术将Win32回调函数转换为C++成员函数
- 作 者:zhangluduo
- 时 间:2008-11-07 02:37:04
- 链 接:http://bbs.pediy.com/showthread.php?t=76213