A função CAtlServiceModuleT::Start
Quando o serviço é executado, _tWinMain calls CAtlServiceModuleT::WinMain, que por sua vez chama a CAtlServiceModuleT::Start.
CAtlServiceModuleT::Start Configura uma matriz de SERVICE_TABLE_ENTRY estruturas que mapeiam cada serviço para sua função de inicialização.Essa matriz, em seguida, é passada para a função de API do Win32, StartServiceCtrlDispatcher.Em teoria, um EXE pudesse lidar com vários serviços e o array pode ter vários SERVICE_TABLE_ENTRY estruturas.Atualmente, entretanto, um serviço gerado pelo ATL suporta apenas um serviço por EXE.Portanto, o array tem uma única entrada que contém o nome do serviço e _ServiceMain sistema autônomo a função de inicialização._ServiceMain é uma função de membro estático de CAtlServiceModuleT que chama a função de membro não estático, ServiceMain.
Observação: |
---|
Falha de StartServiceCtrlDispatcher para se conectar ao Gerenciador de controle de serviços (SCM) provavelmente significa que o programa não está sendo executado sistema autônomo um serviço.Nesse caso, o programa chama CAtlServiceModuleT::Run diretamente para que possa executar o programa sistema autônomo um servidor local. Para obter mais informações sobre sistema autônomo executar o programa sistema autônomo um servidor local, consulte Dicas de depuração. |