Service::serviceCtlHandler(DWORD OpCode)
{
//...
}
Service::ServiceStart
{
//...
serviceStatusHandle = RegisterServiceCtrlHandler("Service", &Service::serviceCtrlHandler /*incompatible*/);
//...
}
如何获得兼容指针?
答案 0 :(得分:2)
您需要制作serviceCtlHandler
函数static
,这意味着它将无法访问任何对象成员。这是因为RegisterServiceCtrlHandler
期望一个函数指针没有绑定到一个对象,并且不会收到隐含的this
指针。
如果改为使用RegisterServiceCtrlHandlerEx
,则可以在指向对象后传递指针,并在正确转换指针后让静态函数调用另一个成员函数。