我正在使用一个 API,它要求我将函数指针作为回调传递。我正在尝试在我的课堂上使用这个 API,但我遇到了编译错误。
这是我从构造函数中所做的:
m_cRedundencyManager->Init(this->RedundencyManagerCallBack);
这不会编译 - 我收到以下错误:
错误 8 错误 C3867:’CLoggersInfra::RedundencyManagerCallBack’:函数调用缺少参数列表;使用 ‘&CLoggersInfra::RedundencyManagerCallBack’ 创建指向成员的指针
我尝试了使用 &CLoggersInfra::RedundencyManagerCallBack
的建议对我不起作用。
对此有任何建议/解释吗?
我正在使用VS2008。
谢谢!!
原文由 ofer 发布,翻译遵循 CC BY-SA 4.0 许可协议
这不起作用,因为成员函数指针不能像普通函数指针那样处理,因为它需要一个“this”对象参数。
相反,您可以按如下方式传递静态成员函数,这在这方面类似于普通的非成员函数:
函数可以定义如下