类成员回调函数问题?
各路高手,本人在项目中遇到一个技术问题,定义一类如下:
代码:
在>>error处我在vs2003下编译能通过并能正常运行,但在vs2010下报错:
代码:
Error 7 error C3867: 'CRecvDataThreadProc::SetRecvDataOff': function call missing argument list; use '&CRecvDataThreadProc::SetRecvDataOff' to create a pointer to member e:\work\l2ds_qk\l2ds_20100906\l2ds\threadproc.cpp 78 1 L2DS
虽然貌似加static可以解决,但那样代码就要做大量改动,请问各位有什么高招,先行谢过。
代码:
class CRecvDataThreadProc :public CThreadProc
{
public:
typedef void (CRecvDataThreadProc::*pSetRecvDataFunc)(DWORD dwData);
public:
CRecvDataThreadProc();
virtual ~CRecvDataThreadProc();
private:
void SetRecvDataOn(DWORD dwtmp);
void SetRecvDataOff(DWORD dwTmp);
private:
。。。
pSetRecvDataFunc m_pfnSet;
};
CRecvDataThreadProc::CRecvDataThreadProc()
:m_hWorkSemaphore(NULL)
{
>>error m_pfnSet = SetRecvDataOff;
::CloseHandle(m_hEventKillThread);
m_hEventKillThread = ::CreateEvent(NULL , TRUE , FALSE , NULL);
}
在>>error处我在vs2003下编译能通过并能正常运行,但在vs2010下报错:
代码:
Error 7 error C3867: 'CRecvDataThreadProc::SetRecvDataOff': function call missing argument list; use '&CRecvDataThreadProc::SetRecvDataOff' to create a pointer to member e:\work\l2ds_qk\l2ds_20100906\l2ds\threadproc.cpp 78 1 L2DS
虽然貌似加static可以解决,但那样代码就要做大量改动,请问各位有什么高招,先行谢过。
...全文
相关推荐
callback回调函数
callback回调函数,很多人不太理解,可以参考一下
c++类成员函数作为回调函数
c++类成员函数作为回调函数
将类成员函数用做C回调函数
系统讲述了如何来使用回调函数,通过本教程你可以迅速掌握如何使用回调函数
APIHook、InlineHook库,使用C++11编写,可将回调函数绑定到类成员函数
APIHook、InlineHook库,使用C++11编写,可将回调函数绑定到类成员函数。代码风格良好,适合学习。
C++中类成员变量初始化总结
1、普通的变量: 一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行。 class CA { public: int data; …… public: CA(); …… }; CA::CA():data(0)//……#1……初始化列表方式 { //data = 0;//……#1……赋值方式 }; 2、static 静态变量: static变量属于类所有,而不属于类的对象,因此不管类被实例化了多少个对象,该变量都只有一个。在这种性质上理解,有点类似于全局


进程/线程/DLL
