void WINAPI Service_Main(DWORD dwArgc, LPTSTR *lpszArgv)
{
//初始化 SERVICE_STATUS 结构中的成员
ssStatus.dwServiceType=SERVICE_WIN32_OWN_PROCESS;
ssStatus.dwControlsAccepted=SERVICE_ACCEPT_STOP;
ssStatus.dwCurrentState= SERVICE_STOPPED;
ssStatus.dwServiceSpecificExitCode=0;
ssStatus.dwCheckPoint=0;
ssStatus.dwWin32ExitCode=0;
ssStatus.dwWaitHint=0;
//注册服务控制处理函数
sshStatusHandle=RegisterServiceCtrlHandler(TEXT(SZSERVICENAME),Service_Ctrl);
//如果注册失败
if(!sshStatusHandle)
{
goto cleanup;
return;
}
//更新服务状态
if(!ReportStatusToSCMgr(
SERVICE_START_PENDING,//服务状态,The service is starting.
NO_ERROR, //退出码
3000)) //等待时间
goto cleanup; //更新服务状态失败则转向 cleanup
ServiceStart(dwArgc,lpszArgv);//具体的服务程序
return;
cleanup:
//把服务状态更新为 SERVICE_STOPPED,并退出。
if(sshStatusHandle)
(void)ReportStatusToSCMgr(SERVICE_STOPPED,dwErr,0);
}
请问哪里不对呢???
蝴蝶刀刀
MYYA