WEB开发网
开发学院软件开发VC 用 C++ 创建简单的 Win32 服务程序 阅读

用 C++ 创建简单的 Win32 服务程序

 2006-07-20 11:41:12 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 源代码压缩包中共有三个rar文件ntservice.rar为NTService 例子源代码ntservicecpl.rar为NTServCpl 例子源代码ntservicectrl.rar为NTServCtrl 例子源代码摘要本文描述如何用 Visual C++ 创建 Windows

本文示例源代码或素材下载

源代码压缩包中共有三个rar文件

ntservice.rar为NTService 例子源代码

ntservicecpl.rar为NTServCpl 例子源代码

ntservicectrl.rar为NTServCtrl 例子源代码

摘要

本文描述如何用 Visual C++ 创建 Windows NT 服务程序。创建该服务仅用到一个 C++ 类,这个类提供服务与操作系统之间一个简单的接口。使用这个类实现自己的服务非常简单,只要改写少数几个基类中的虚拟函数即可。在本文有三个源代码参考例子:

  • NTService 是一个简单的 Win32 服务,它就是用本文所描述的方法建立的;
  • NTServCpl 是一个控制面版程序,用来控制 NTService 服务;
  • NTServCtrl 是一个独立的程序例子,用它可以监控某个 Win32 服务;

简介

Windows NT 中的服务实际上是一个程序,只要计算机操作系统一启动,服务就可以运行其中。它不需要用户登陆。服务程序是一种与用户无关的任务,比如目录复制,进程监控或网络上供其它机器使用的服务,比如 HTTP 协议支持。

创建 Windows NT 服务程序并不是很难。但调试某个服务程序不是一件容易的事。就我自己而言,我喜欢用 Visual C++ 编写自己的 C++ 程序。大多数 Win32 服务都是用 C 写的,所以我觉得如果用某个 C++ 类来实现 Win32 服务的基本功能一定很有意思。有了这个 C++ 类,谁要想用 C++ 创建 Win32 服务就是一件很简单的事情了。我为此开发了一个 C++ 基类,用它作为编写 Win32 服务的起点应该没有什么大问题。

创建服务程序除了编写服务代码外,还必须做一些其它额外的编码工作:

  • 在系统日志或应用程序日志中报告警告信息和出错信息,不能用输出到屏幕的方式,因为用户根本就没有登陆。
  • 服务程序的控制即可以通过单独的应用程序,也可以通过控制面版程序。这取决于你的服务实现什么样的通讯机制。
  • 从系统中安装和卸载服务

大多数服务程序都是使用一个安装程序来安装,而用另外一个程序来卸载。本文我将这些功能内建在服务程序自身当中,使之一体化,这样只分发一个.EXE文件即可。你可以从命令行直接运行服务程序,并且可以随心所欲地安装和卸载或报告其版本信息。NTService 支持下列的命令行参数:

1 2 3 4 5 6  下一页

Tags:创建 简单 Win

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接