问题描述
通过日志可以看到很多消息中心的消息都没有接收到,但是跟踪调试发现一切都是正常的
问题原因
再一次是因为 dynamic_cast
转换失败的原因。
解决方法
将 dynamic_cast
替换 static_cast
后可以使用。
template <class M>
class BaseMessage : public IMessage
{friend class MessageCenter;//...
private:virtual bool SendTo(IHandler *pHandler) const{BaseHandler<M> *p = static_cast<BaseHandler<M> *>(pHandler);if (!p) {return false;}Singleton::GetMessageCenter()->RecordHandle(p, this);return p->Handle((const M *)this);}//...
};