![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Всем привет!
Подскажите, пожалуйста, почему служба не запускается? Код проходит без ошибок, но проверяю диспетчер служб и не нахожу созданную службу... Код:
При StartServiceCtrlDispatcher выдает ошибку 1063!!! Это сообщение отредактировал(а) freezeman - 26.2.2012, 15:29 |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Подскажите, в чем может быть проблема? Именно при запуске (StartServiceCtrlDispatcher) выдает ошибку. Пробовал как на XP x86, так и на Win 7 x86.
Error 1063 |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Может,
Хотя не об этом. Ну и Может, (LPТSTR)...? -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| freezeman |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Спасибо за ответ! Я решил взять пример здесь, все прекрасно описывается. Но не могу теперь найти место, где выполнять мой код!! Может звучит глупо, но, как я понимаю, он должен располагаться в ServiceMain, пытаюсь вывести что-нибудь в файл, но ничего происходит... Прикрепил проект! Для запуска необходимо в командной строке указать ключ -install и запустить службу. Добавлено через 5 минут и 13 секунд Небольшая поправка, мой код выполняется в ServiceMain только после перезапуска или остановки службы (т.е. когда я запустил службу ничего не произошло, но после её остановки или перезапуска код начинает выполняться и пишет в файл) Каким это образом может происходить??? Присоединённый файл ( Кол-во скачиваний: 7 )
minsvc.zip 9,65 Kb |
||||
|
|||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
||||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Как я понимаю, этим сервис лишь прописывается в системе как сервис, но никак не запускается. А сам сервис стартует запуском экзешника без указания опций запуска:
То есть:
Не хватает
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Да
Нет. 'Просто запускать' его должен Service Manager, а не пользователь. Можно из панели управления, либо с коммандной строки через net start SServ1 |
||||
|
|||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Мне нужно создать в службе 3 потока, где их запускать в ServiceMain? |
|||
|
||||
| feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Мда, точно, в функциональность этого экзешника не входит старт/стоп сервиса...
Зависит от задачи. Если это три сервиса, то на каждый нужен свой ServiceMain:
Если это один сервис, но с тремя потоками, тогда одна процедура ServiceMain и запуск потоков из ServiceMain после RegisterServiceCtrlHandlerEx. Добавлено через 11 минут и 54 секунды Только надо учесть, что один поток у Вас уже есть))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Угу, вот только 'минимальным' я бы его не назвал В вашей библиотеке - в наследнике CServiceContext в методе OnServiceStart() (и не забыть их завершить в методе OnServiceStop() ) |
|||
|
||||
| freezeman |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Да, минимальными их назвать трудно)) Я вписывал туда код записи в файл для проверки, но ничего не происходит...Может из-за того, что я сервис стартовал из Диспетчера служб Windows... Я ещё подумал, может сделать службу на C# и из нее запускать exe, где запускаются все 3 потока??? |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |