请教关于回调函数(成员函数)的传递的一个小小小问题。。。。
注册的函数原型(是CTimerManager的成员函数)如下:
template<class T>
void RegisterTimer(int timerID, CTime timePoint, T &obj,void (T::*function)(void* p), void *lparam, int count, CTime delay);
调用如下:
CTimerManager::Instance().RegisterTimer<CMy12345Dlg>(1, time, this, &CMy12345Dlg::call, edit, count, timeDelay);
回调函数如下(CMy12345Dlg的成员函数):
void call(LPVOID lparam);
现在编译报:
错误 1 error C2664: “void CTimerManager::RegisterTimer<CMy12345Dlg>(int,ATL::CTime,T &,void (__thiscall CMy12345Dlg::* )(void *),void *,int,ATL::CTime)”: 不能将参数 3 从“CMy12345Dlg *const ”转换为“CMy12345Dlg &”
两天来一直纠结与这个问题,希望大家能够帮小弟解决。