Pergunta

Estou tentando registrar um serviço ATL usando

Exename.exe / serviço

conforme descrito aqui: http: // MSDN. microsoft.com/en-us/library/74y2334x(VS.80).aspx

Depois de fazer isso, porém, é que não aparecem no meu painel de controle serviços (o que eu chegar de serviços de digitação na caixa Iniciar no Vista).

Eu tentei cavar através do código atl para ver onde ele lida com o interruptor de serviço /, mas não consegue encontrá-lo, embora eu posso encontrar o código para manipular / RegServer e / unregserver

Este utilizado para o trabalho, eu de alguma forma conseguiu registrar este serviço antes. Mas, agora, eu mudei sua localização e não pode obtê-lo registrado novamente. Quando eu executo Exename.exe / serviço, ele irá começar como um servidor local se eu fizer a / RegServer primeiro, mas eu quero que ele instalado como um serviço.

Estou faltando alguma coisa, e você sabe onde o manuseio do interruptor de serviço / é feito?

Foi útil?

Solução 4

Verifique se você não tiver acidentalmente digitou alguns caracteres no nome do ParseCommandLine função na classe CAtlServiceModuleT definido no atlbase.h

Se você fizer isso, há uma versão desta função também na classe base que significará Eveything irá compilar bem, e que poderia levá-lo todos os dias para detectar esse erro idiota!

; -)

Outras dicas

tiro no escuro: Você está executando no Vista? Se isso verifique se você está executando com privilégios de administrador completos. Caso contrário, é possível que você está registrando este aplicativo via virtualização.

O mesmo que JaredPar fez, comando tentativa com Power Shell com privilégios totais de administrador.

Correndo com o CAtlServiceModule :: método de instalação fora da caixa, você deve usar as capitais corretos em cada argumento - "/ Serviço", "/ unregserver", etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top