The value of ESP was not properly saved across a function call解决方案

1. The value of ESP was not properly saved across a function call
出现这种错误以前摸不着头脑,如坠五里雾。现在知道了,是函数接口定义格式不对
如我使用cocos2d::ui::Button时,定义点击函数:
Button* button = Button::create();
button->addTouchEventListener(this, toucheventselector(HeroListLayer::menuPauseCallback));
然后这个menuPauseCallback声明为:
void HeroListLayer::menuAddHero(cocos2d::Ref *sender); //重点错误!
这样一来,调用和声明都是错的,特别是声明,是产生ESP was not properly save的根源,查查官方例程,原来声明是这样的:
void HeroListLayer::menuAddHero(cocos2d::Ref *sender, Widget::TouchEventType type);
调用是这样的:
button->addTouchEventListener(CC_CALLBACK_2(HeroListLayer::menuPauseCallback, this));

原来我声明的和官方定义的接口不符,当然要出错了,只是那个提示ESP was not properly save太诡秘,让人摸不着头脑
这样一改那个改死的ESP was not properly save就再也不会出现了

你可能感兴趣的:(cocos2d-x)