将非静态方法注册为回调函数是否合乎逻辑?

时间:2018-11-08 09:52:53

标签: c++ callback static

我创建了2个class.class ?和class {{ batters?.batters?.id }}

首先,我在animation.setFillAfter(true);类中创建animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { //set view visibility to `GONE` } @Override public void onAnimationRepeat(Animation animation) { } });

然后我通过KeyLogger得到了cHookProc的地址

这是否合乎逻辑并且始终可以正常工作?

这是cHookProc

KeyLogger

这是LRESULT CALLBACK cHookProc::HookProc

unsigned int cHookProc::getCallBackAddr()

1 个答案:

答案 0 :(得分:1)

如果您的函数不使用类中的任何方法,则可能会起作用,但这只是随机的机会,如果您更改函数并向对象添加引用,它将中断。在这种情况下,使其成为静态方法。

方法的回调应包含对调用该方法的对象的引用。

还为cHkProc使用唯一的指针。