利用THUNK技术回调类成员函数,是一项前几年很热门的技术,网上的资料和示例代码也很多,但这些代码普遍存在一些差强人意的地方,要么缺乏通用性,需要针对不同的回调函数作调整,要么使用起来不方便,需要在应用代码里写上三、四行以上不相关(甚至有些莫名其妙)的代码或宏,不便于代码的阅读和维护。
针对这些缺点,我编写了一个更为简单易用的使用THUNK技术的回调函数类,类代码和示例如下:
第一个应用实例:派生一个回调无参数类成员函数的定时器的类。
由此实例可以看出,读者在使用CThunkBase基类时,只需要两行语句,一是public CThunkBase,二是GetFuncAddr。是不是简单明了啊?
然后,我们再来看一下基于CThunkBase派生的一个简单的窗口类及其调用实例:
同第一个派生类一样,也只需要两行代码,public CThunkBase和GetFuncAddr。其实,在多重派生里CThunkBase运行结果依然正确。
由于水平有很,代码中难免存在漏洞,欢迎指正。
本文介绍了一种利用THUNK技术简化类成员函数回调的方法,并提供了一个易于使用的回调函数类CThunkBase,仅需两行代码即可实现回调。文章包含两个应用实例:一个用于创建带有回调功能的定时器类,另一个演示如何创建一个简单的窗口类。
3626

被折叠的 条评论
为什么被折叠?



