+ -
当前位置:首页 → 问答吧 → 我的服务程序总是报异常退出, 怎么办?

我的服务程序总是报异常退出, 怎么办?

时间:2011-12-20

来源:互联网

我的服务程序就是延时5秒后退出(实际需求是启动另一个进程后退出), 结果运行时总弹出对话框, 报服务异常退出, 怎么办?




void WINAPI ServiceMain()
{
  // Register the control request handler
  status.dwCurrentState = SERVICE_START_PENDING;
status.dwControlsAccepted = SERVICE_ACCEPT_STOP;

//注册服务控制
  hServiceStatus = RegisterServiceCtrlHandler(szServiceName, ServiceStrl);
  if (hServiceStatus == NULL)
  {
  return;
  }
  SetServiceStatus(hServiceStatus, &status);

  status.dwWin32ExitCode = S_OK;
  status.dwCheckPoint = 0;
  status.dwWaitHint = 0;
status.dwCurrentState = SERVICE_RUNNING;
SetServiceStatus(hServiceStatus, &status);

  Sleep(5000); //延时

status.dwCurrentState = SERVICE_STOPPED;
SetServiceStatus(hServiceStatus, &status);

}

void WINAPI ServiceStrl(DWORD dwOpcode)
{
  switch (dwOpcode)
  {
  case SERVICE_CONTROL_STOP:
status.dwCurrentState = SERVICE_STOP_PENDING;
  SetServiceStatus(hServiceStatus, &status);
  PostThreadMessage(dwThreadID, WM_CLOSE, 0, 0);
  break;
  case SERVICE_CONTROL_PAUSE:
  break;
  case SERVICE_CONTROL_CONTINUE:
  break;
  case SERVICE_CONTROL_INTERROGATE:
  break;
  case SERVICE_CONTROL_SHUTDOWN:
  break;
  default:
  ;
  }
}

作者: yyyyy_3   发布时间: 2011-12-20

单步执行看哪里出问题了

作者: jiuzhoulh   发布时间: 2011-12-20