служба windows в с ++ - PullRequest
       0

служба windows в с ++

1 голос
/ 23 ноября 2010

Я хочу сделать приложение на c ++, которое будет периодически запускаться. очень похоже на службу Windows. Можно ли создать службу Windows в C ++. Если да, то как?

Какой-нибудь учебник для этого?

РЕДАКТИРОВАТЬ: Как я могу создать установщик для службы Windows?

Ответы [ 5 ]

2 голосов
/ 23 ноября 2010

Как указано в другом ответе, вам нужно создать обычную программу на C ++ (начиная с main) и вызвать StartServiceCtrlDispatcher Win32 API, чтобы сообщить Windows, что вы хотите запустить эту программу как службу.Некоторую информацию о этой функции можно найти в MSDN .

. Кроме того, вам потребуется механизм для установки вашей службы, чтобы она отображалась на панели управления службами Windows.,И, конечно, должна быть предусмотрена функция uninstall .Как правило, все три функции (т.е. установка, удаление и запуск) обрабатываются в одном исполняемом файле.Разница в этих трех значениях указывается в параметрах командной строки.

Вы не указали, какую версию VC ++ вы используете.Если вы работаете с управляемым кодом .NET, то это довольно просто, так как шаблон Windows Service предварительно встроен в Visual Studio.

Однако, если вы собираетесь использовать VC ++ 6 (или 100% неуправляемый код), тогда вам нужнознать много деталей низкого уровня.Дальнейший выбор зависит от вашего ноу-хау ATL или MFC (если вы используете более старые версии компилятора / среды выполнения).

Это может быть хорошим руководством по созданию служб Windows с использованием C ++ .

2 голосов
/ 23 ноября 2010

C ++ достаточно совместим с C, так что традиционные подходы работают. Вы создаете приложение как обычную программу на C ++ (начиная с main); при запуске вы вызываете StartServiceCtrlDispatcher, чтобы сообщить ОС, что ваша программа может работать как служба. Windows не заботится о том, что вы используете классы внутри.

1 голос
/ 23 ноября 2010

Проверьте библиотеки POCO C ++, которые позволяют без особых усилий писать демоны / сервисы.

http://pocoproject.org/docs/00100-GuidedTour.html

http://pocoproject.org/slides/190-Applications.pdf

0 голосов
/ 18 декабря 2012

возможно я опоздал, но я пишу класс C ++ для создания служб Windows и хочу поделиться кодом вам нужно унаследовать свой класс от моего базового класса cWinService http://sprogram.com.ua/en/articles/how-write-service-for-windows-with-cpp

пожалуйста, свяжитесь со мной, если у вас есть какие-либо замечания. Я не мастер C ++, я просто учусь;)

0 голосов
/ 23 ноября 2010

Конечно, это возможно. Не только возможно, но и для этого предназначен собственный API (ну, на самом деле, C, но достаточно близко).

См. Книгу Джеффа Рихтера "Программирование серверных приложений для Windows 2000"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...