【问题标题】:windows service in c++c++中的windows服务
【发布时间】:2010-11-23 09:06:27
【问题描述】:

我想用 c++ 制作一个定期运行的应用程序。很像 Windows 服务。是否可以在 C++ 中创建 Windows 服务。如果是怎么办?

有这方面的教程吗?

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

【问题讨论】:

    标签: c++ windows-services


    【解决方案1】:

    如另一个答案所示,您需要创建一个普通的 C++ 程序(以main 开头),并调用StartServiceCtrlDispatcher Win32 API 来告诉 Windows 您希望将此程序作为服务运行。关于this function can be found in MSDN的一些信息。

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

    您没有指明您使用的是哪个版本的 VC++。如果您要使用托管 .NET 代码,那么这很容易,因为 Windows 服务模板已预构建到 Visual Studio 中。

    但是,如果您使用 VC++ 6(或 100% 非托管代码),那么您需要了解很多底层细节。进一步的选择取决于您对 ATL 或 MFC 的了解(如果您使用的是旧版本的编译器/运行时)。

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

    【讨论】:

    • 这些是这方面的一些好文章。 1.msdn.microsoft.com/en-us/library/ms685967%28VS.85%29.aspx2.devx.com/cplus/Article/9857/1954
    • 如何为 Windows 服务创建安装程序?
    • @syd,这取决于您要使用的安装程序。如果您使用最低限度,那么单个服务的命令行安装非常容易。
    【解决方案2】:

    C++ 与 C 的兼容性足以让传统方法发挥作用。您将应用程序构建为普通的 C++ 程序(以main 开头);在启动时调用StartServiceCtrlDispatcher 通知操作系统您的程序可以作为服务运行。 Windows 不在乎您在内部使用类。

    【讨论】:

      【解决方案3】:

      查看 POCO C++ 库,这些库可让您轻松编写守护程序/服务。

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

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

      【讨论】:

        【解决方案4】:

        当然可以。不仅有可能,而且这就是原生 API 的设计目的(嗯,确实是 C,但足够接近)。

        请参阅 Jeff Richter 的书“Programming Server side Applications for Windows 2000”

        【讨论】:

          【解决方案5】:

          也许我迟到了,但我为创建 Windows 服务编写 C++ 类并希望共享代码 你需要从我的基类 cWinService 继承你的类 http://sprogram.com.ua/en/articles/how-write-service-for-windows-with-cpp

          如果您有任何观察,请与我联系。 我不是 C++ 向导,我只是在学习 ;)

          【讨论】:

            猜你喜欢
            • 2018-01-29
            • 2018-05-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-04-25
            • 1970-01-01
            相关资源
            最近更新 更多