2008-11-06 8 views
2

Je suis en train d'enregistrer un service atl utilisantservices Atl ne pas enregistrer

ExeName.exe/Service

comme décrit ici: http://msdn.microsoft.com/en-us/library/74y2334x(VS.80).aspx

Après cela cependant, il est ne figurant pas dans mes services panneau de contrôle (celui que je reçois en tapant Services dans la case de démarrage sur Vista).

J'ai essayé de creuser à travers le code atl pour voir où il gère le commutateur/service, mais ne peut pas trouver, même si je peux trouver le code pour gérer/RegServer et/UNREGSERVER

Ceci était travail, j'ai réussi à enregistrer ce service avant. Mais, maintenant j'ai déplacé son emplacement et ne peux pas l'enregistrer à nouveau. Lorsque j'exécute ExeName.exe/service, il démarre en tant que serveur local si je fais d'abord/RegServer, mais je veux qu'il soit installé en tant que service. Est-ce que je manque quelque chose, et savez-vous où la manipulation du commutateur/service est faite?

+0

l'interrupteur doit être/regserver et/unregserver. J'ai eu un problème similaire sur Windows 2008 et a bien fonctionné quand j'ai changé de boîtier ... bizarre ... –

Répondre

0

Vérifiez que vous avez accidentellement tapé quelques caractères dans le nom de la fonction ParseCommandLine en classe CAtlServiceModuleT définie dans atlbase.h

Si vous le faites, il y a une version de cette fonction aussi dans la classe de base qui signifiera que tout se compilera bien, et il pourrait vous prendre toute la journée pour repérer cette erreur stupide!

;-)

1

Tourné dans le noir: courez-vous sur Vista? Si c'est le cas, assurez-vous que vous utilisez des privilèges d'administrateur complets. Sinon, il est possible que vous enregistriez cette application via la virtualisation.

+0

Bonne suggestion, j'ai juste vérifié mes privilèges, et je pense que j'ai tous les droits d'administration appropriés. –

+1

Eh bien, ça vaut le coup – JaredPar

1

Comme JaredPar fait, essayez avec commande Shell avec puissance des privilèges d'administrateur complet.

1

Courir avec le CAtlServiceModule :: La méthode d'installation de la boîte, vous devez utiliser les majuscules correctes sur chaque argument - «/service », «/UNREGSERVER », etc.

Questions connexes