2010-11-23 64 views
1

我想在C++中定期运行一个应用程序。很像一个Windows服务。是否有可能在C++中创建一个Windows服务。如果是的话如何?C++中的windows服务

这个任何教程?

编辑:我如何创建Windows服务的安装程序?

回答

2

正如另一个答案表明,你需要创建一个普通的C++程序(从main),并调用StartServiceCtrlDispatcher的Win32 API来告诉窗口你想运行这个程序作为一项服务。关于this function can be found in MSDN的一些信息。

此外,您需要一个机制来安装您的服务,以便它出现在Windows服务控制面板中。当然,还应该提供一个卸载功能。通常,所有三个功能(即安装,卸载和运行)都在一个可执行文件中处理。这三者的区别在于命令行参数。

你还没有指出你使用的是什么版本的VC++。如果您要使用托管的.NET代码,那么很容易,因为Windows Service模板是预先构建到Visual Studio中的。但是,如果你要使用VC++ 6(或100%非托管代码),那么你需要知道很多低级细节。进一步的选择取决于你的ATL或MFC的知识(如果你正在使用旧版本的编译器/运行时)。

这可能是一个很好的教程creating Windows Services using C++

+0

这些都是一些很好的文章。 1.http://msdn.microsoft.com/en-us/library/ms685967%28VS.85%29.aspx 2.devx.com/cplus/Article/9857/1954 – sid 2010-11-24 09:37:38

2

C++与传统方法工作的C相兼容。您将该应用程序构建为正常的C++程序(从main开始);在启动时,您可以拨打StartServiceCtrlDispatcher通知操作系统您的程序可以作为服务运行。 Windows不关心你在内部使用类。

0

当然这是可能的。不仅可能,但这就是本机API的设计目的(嗯,C真的,但足够接近)。

见杰夫里氏的书“适用于Windows 2000编程服务器端应用程序”