Служба Atl не регистрируется
Вопрос
Я пытаюсь зарегистрировать atl-сервис, используя
ExeName.exe /сервис
как описано здесь: http://msdn.microsoft.com/en-us/library/74y2334x (ПРОТИВ 80).aspx
Однако после этого он не появляется на моей панели управления службами (той, к которой я попадаю, набрав Services в окне "Пуск" в Vista).
Я попытался покопаться в коде atl, чтобы увидеть, где он обрабатывает переключатель /service, но не могу его найти, хотя я могу найти код для обработки /RegServer и / UnregServer
Раньше это работало, мне каким-то образом удавалось регистрировать эту услугу раньше.Но теперь я изменил его местоположение и не могу зарегистрировать его снова.Когда я запускаю ExeName.exe /service, он запускается как локальный сервер, если я сначала запускаю / RegServer, но я хочу, чтобы он был установлен как сервис.
Я что-то упускаю, и знаете ли вы, где выполняется обработка переключателя /service?
Решение 4
Убедитесь, что вы случайно не ввели несколько символов в имя функции ParseCommandLine в классе CAtlServiceModuleT, определенном в atlbase.h
Если вы это сделаете, в базовом классе также есть версия этой функции, что будет означать, что все будет хорошо компилироваться, и вам может потребоваться весь день, чтобы обнаружить эту дурацкую ошибку!
;-)
Другие советы
Снято в темноте: вы работаете в Vista? Если это так, убедитесь, что вы работаете с полными привилегиями администратора. В противном случае вы можете зарегистрировать это приложение с помощью виртуализации. Р>
Так же, как это делал JaredPar, попробуйте команду с Power Shell с полными правами администратора.
Работая с методом CAtlServiceModule :: Install из коробки, вы должны использовать правильные заглавные буквы для каждого аргумента - " / Service " / UnregServer " и т. д.