挂钩/折叠虚拟function

我一直在试图正确地钩住/绕过一个类对象的虚拟函数,我已经成功地调用了一个不同的函数,但是我必须做一些关于如何传递this关键字的不正确的东西到function。

我读了一篇关于以类似的方式挂钩D3D函数的文章,并且提到编译器会把int Class::method(int)这样的函数转换成int method(Class* this, int) ,但是如果我把地址在vtable中定义了这样的函数,“this”的地址是不正确的,所以这可能是不正确的。

编译器如何规划成员函数,是否可以用非成员函数的forms表示成员函数,以便我可以在vtable中将地址设置为这样的函数,并能够引用适当的对象?

Solutions Collecting From Web of "挂钩/折叠虚拟function"