C++ 传递类成员的函数指针
如何获得兼容的指针?您需要使您的C++ 传递类成员的函数指针,c++,C++,如何获得兼容的指针?您需要使您的serviceCtlHandler函数静态,这意味着它将无法访问任何对象成员。这是因为,RegisterServiceCtrlHandler需要一个未绑定到对象的函数指针,并且不会收到隐含的此指针 如果改为使用RegisterServiceCtrlHandlerEx,则可以传递指向该对象的指针,并让静态函数在正确转换指针后调用另一个成员函数。创建一个自由函数或静态函数,并传递指向该对象的指针。 Service::serviceCtlHandler(DWORD Op
serviceCtlHandler
函数静态
,这意味着它将无法访问任何对象成员。这是因为,RegisterServiceCtrlHandler
需要一个未绑定到对象的函数指针,并且不会收到隐含的此
指针
如果改为使用RegisterServiceCtrlHandlerEx,则可以传递指向该对象的指针,并让静态函数在正确转换指针后调用另一个成员函数。创建一个自由函数或静态函数,并传递指向该对象的指针。
Service::serviceCtlHandler(DWORD OpCode)
{
//...
}
Service::ServiceStart
{
//...
serviceStatusHandle = RegisterServiceCtrlHandler("Service", &Service::serviceCtrlHandler /*incompatible*/);
//...
}