Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Помогите разобраться со службами windows


Автор: sawka88 5.6.2010, 17:15
Доброе время суток!

Пытаюсь разобраться со службами.
С Установкой и удалением все понятно...
А вот с самой службой и обработкой команд запуска, остановки и т.д. совсем не могу разобраться.

Если у кого есть рабочий пример с которого можно было бы начать изучение служб, очень прошу поделиться!
Заранее благодарен!!! smile 

Автор: xvr 5.6.2010, 18:56
Создайте в VS проект - С++ -> ATL Project -> [Application Setting] -> Server type = Service
Получите скелет сервиса (со всеми прибамбахами)  smile 

Автор: Kornev 4.4.2012, 11:34
Дабы не плодить темы решил написать здесь, т.к. вопрос обсалютно идентичный.
пытаюсь написать службу windows на Microsoft Visual C++ 6.0.
Скачал книгу Джеффри Рихтера "Програмирование серверных приложений"
Вот на всяк случ ссылка http://progbook.ru/c/387-rihter-programmirovanie-servernyh-prilozhenii.html
Там с книгой идут исходники.
При компиляции любого проекта выдаются ошибки...
Вот например компиляция проекта FileCopy:
Код

--------------------Configuration: 02 FileCopy - Win32 Debug--------------------
Compiling...
FileCopy.cpp
NOTE: WINVER has been defined as 0x0500 or greater which enables
Windows NT 5.0 and Windows 98 features. When these headers were released,
Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.
For this release when WINVER is defined as 0x0500 or greater, you can only
build beta or test applications.  To build a retail application,
set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk
to see if retail Windows NT 5.0 or Windows 98 headers are available.
See the SDK release notes for more information.
You are not using the latest Platform SDK header/library 
files. This may prevent the project from building correctly.
You may install the Platform SDK from the book's CD-ROM or 
from http://msdn.microsoft.com/downloads/
c:\cd\cmnhdr.h(263) : error C2065: 'GetWindowLongPtr' : undeclared identifier
c:\cd\cmnhdr.h(263) : error C2065: 'GWLP_HINSTANCE' : undeclared identifier
c:\cd\classlib\iocp.h(41) : error C2061: syntax error : identifier 'ULONG_PTR'
c:\cd\classlib\iocp.h(48) : error C2061: syntax error : identifier 'ULONG_PTR'
c:\cd\classlib\iocp.h(52) : error C2061: syntax error : identifier 'ULONG_PTR'
c:\cd\classlib\iocp.h(60) : error C2061: syntax error : identifier 'ULONG_PTR'
c:\cd\02-filecopy\filecopy.cpp(77) : error C2065: 'PCTSTR' : undeclared identifier
c:\cd\02-filecopy\filecopy.cpp(77) : error C2146: syntax error : missing ')' before identifier 'pszFileSrc'
c:\cd\02-filecopy\filecopy.cpp(77) : error C2059: syntax error : ')'
c:\cd\02-filecopy\filecopy.cpp(77) : error C2143: syntax error : missing ';' before '{'
c:\cd\02-filecopy\filecopy.cpp(77) : error C2447: missing function header (old-style formal list?)
c:\cd\02-filecopy\filecopy.cpp(209) : error C2064: term does not evaluate to a function
c:\cd\02-filecopy\filecopy.cpp(214) : error C2065: 'OPENFILENAME_SIZE_VERSION_400' : undeclared identifier
c:\cd\02-filecopy\filecopy.cpp(230) : error C2065: 'GetFileSizeEx' : undeclared identifier
c:\cd\02-filecopy\filecopy.cpp(259) : error C2664: 'DialogBoxParamW' : cannot convert parameter 4 from 'long (struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)'
        None of the functions with this name in scope match the target type
Error executing cl.exe.

02 FileCopy.exe - 15 error(s), 0 warning(s)


В книге на 12 странице написано. что использовались Microsoft Visual C++ 6.0 и Windows 2000 Platform SDK.
Судя по ишибке я так понял. что мне как раз и не хватает SDK. Но не могу разобраться, гдеее взять. 
Вот нашел что то похожее http://rutracker.org/forum/viewtopic.php?t=1643321
Но там куча каких то пакетов для установки и т.д.
Прошу направить в нужное русло.

Еще возник вопрос по поводу ответа от "xvr": "Создайте в VS проект - С++ -> ATL Project -> [Application Setting] -> Server type = Service
Получите скелет сервиса (со всеми прибамбахами)  "
Я так и не нашел в VS6 нужного проекта. Вот скриншот из VS:
user posted image

Автор: freezeman 4.4.2012, 11:37
Недавно писал службу, http://www.rsdn.ru/article/files/Classes/svcclass.xml все описано с рабочими примерами...

Автор: xvr 4.4.2012, 12:26
Цитата(Kornev @  4.4.2012,  11:34 Найти цитируемый пост)
Судя по ишибке я так понял. что мне как раз и не хватает SDK. Но не могу разобраться, гдеее взять.

Скачать с сайта Microsoft

Цитата(Kornev @  4.4.2012,  11:34 Найти цитируемый пост)
Я так и не нашел в VS6 нужного проекта.

Возьмите студию посвежее, уж больно древняя версия VS6, там много чего нет  smile 
(Если не можете - попробуйте тип проекта 'ATL COM App Wizard', лишнее потом сотрете)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)