Função de CAtlServiceModuleT::Start
Quando o serviço é dirigido, _tWinMain chama CAtlServiceModuleT::WinMainchama, que por sua vez CAtlServiceModuleT::Start.
CAtlServiceModuleT::Start configura de um vetor de estruturas de SERVICE_TABLE_ENTRY que mapeiam cada serviço para sua função de inicialização.Essa matriz é passada à função da API do Win32, StartServiceCtrlDispatcher.Em teoria, um EXE pode manipular vários serviços e a matriz pode ter vários frameworks de SERVICE_TABLE_ENTRY .Atualmente, o entanto, os serviços de suporte ATL- gerados apenas um serviço por EXE.Portanto, o array tem uma única entrada que contém o nome e _ServiceMain de serviço como 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 |
---|
A falha de StartServiceCtrlDispatcher (SCM) conectar ao gerenciador de controle de serviço provavelmente significa que o programa não estiver sendo executado como um serviço.Em esse caso, o programa chama CAtlServiceModuleT::Run diretamente para que o programa possa executar como um servidor local.Para obter mais informações sobre executar o programa como um servidor local, consulte Dicas de depuração. |