Service::serviceCtlHandler(DWORD OpCode)
{
//...
}
Service::ServiceStart
{
//...
serviceStatusHandle = RegisterServiceCtrlHandler("Service", &Service::serviceCtrlHandler /*incompatible*/);
//...
}
How do I get a compatible pointer?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You’ll need to make your
serviceCtlHandlerfunctionstatic, which means it won’t be able to access any object members. This is becauseRegisterServiceCtrlHandleris expecting a function pointer which is not tied to an object and will not receive an impliedthispointer.If you use
RegisterServiceCtrlHandlerExinstead, you can pass a pointer to the object and have the static function call another member function after properly casting the pointer.