全程分析用托管C++编写Windows服务
来源:百度文库 编辑:神马文学网 时间:2024/04/29 14:45:00
多年以来,只要提到编写Windows服务,就会想到用Visual C++编写,同时,这也是其中一件C++程序员可以做,而VB程序员不可以做的事情。以前,我们只称其为"服务"或"NT服务",现在,它们被命名为 "Windows服务",而且用VB.NET或C#也可以很容易地编写。9 B0 d3 ~7 n$ G) s8 Y$ G
但是,如果你想用托管C++来编写呢?毕竟,大多数有经验的 Visual C++程序员都会写过一两个服务,也会知道怎样完成一个类似的工程。假设你有一个必须要一直运行以提供服务的程序,且连接着一些远程电脑,如果不想编写一本使用手册,告诉客户要记得在每次重启电脑之后重新运行此程序,你就应该使它成为一个服务;又假设你有一个用于删除过期数据库记录的便利维护工具,如果不想让管理员每周都亲手运行它一次,你就应该使它成为一个服务。看起来挺吸引人的,那就让我们开始吧。; @, i8 ]2 z+ ]4 t7 S; a" A: o; c: U
5 C( h8 Y4 `% ?5 {/ _
创建服务工程
以下要做的事情非常简单:打开Visual Studio.NET,创建一个新的工程,在Visual C++工程下,选择Windows服务(.NET)。接下来,为这个服务取一个方便在电脑的服务列表中查找到的名字,在此为CGNotifier。向导会创建一个继承自System::ServiceProcess::ServiceBase的类并打开设计视图,在此,你可放入一个计时器、一个数据库连接,或其他不可见的组件。( z! h. H; i! t+ ?: y
让我们转到代码视图中看一下生成的代码,在此有一个构造函数与一个Dispose方法,这两个你都可以忽略,还有一对重载的方法:OnStart()和OnStop)。在OnStart()中,可编写服务所需的代码。服务中一个重要的范畴是使用"事件引发对象",例如 System::IO::FileSystemWatcher的一个实例,一般可在OnStart()中创建这些对象,在本例中,你可为类加入事件方法,并处理在服务运行期间,由这些对象引发的事件。另有一种服务,它们对发生的事情不作反应,只在每天或每周的特定时间,执行一些特定的任务,这些服务平时通常处于休眠状态,但因为它们的工作状态是持续的,所以不应该停止它们,或者可以把它们放入一个循环中,在特定的时间检查它们是否已被停止。1 ………………
由于格式问题,没有全部转载,全文在一下网站
http://www.999e.cn/viewthread.php?tid=1491
但是,如果你想用托管C++来编写呢?毕竟,大多数有经验的 Visual C++程序员都会写过一两个服务,也会知道怎样完成一个类似的工程。假设你有一个必须要一直运行以提供服务的程序,且连接着一些远程电脑,如果不想编写一本使用手册,告诉客户要记得在每次重启电脑之后重新运行此程序,你就应该使它成为一个服务;又假设你有一个用于删除过期数据库记录的便利维护工具,如果不想让管理员每周都亲手运行它一次,你就应该使它成为一个服务。看起来挺吸引人的,那就让我们开始吧。; @, i8 ]2 z+ ]4 t7 S; a" A: o; c: U
5 C( h8 Y4 `% ?5 {/ _
创建服务工程
以下要做的事情非常简单:打开Visual Studio.NET,创建一个新的工程,在Visual C++工程下,选择Windows服务(.NET)。接下来,为这个服务取一个方便在电脑的服务列表中查找到的名字,在此为CGNotifier。向导会创建一个继承自System::ServiceProcess::ServiceBase的类并打开设计视图,在此,你可放入一个计时器、一个数据库连接,或其他不可见的组件。( z! h. H; i! t+ ?: y
让我们转到代码视图中看一下生成的代码,在此有一个构造函数与一个Dispose方法,这两个你都可以忽略,还有一对重载的方法:OnStart()和OnStop)。在OnStart()中,可编写服务所需的代码。服务中一个重要的范畴是使用"事件引发对象",例如 System::IO::FileSystemWatcher的一个实例,一般可在OnStart()中创建这些对象,在本例中,你可为类加入事件方法,并处理在服务运行期间,由这些对象引发的事件。另有一种服务,它们对发生的事情不作反应,只在每天或每周的特定时间,执行一些特定的任务,这些服务平时通常处于休眠状态,但因为它们的工作状态是持续的,所以不应该停止它们,或者可以把它们放入一个循环中,在特定的时间检查它们是否已被停止。1 ………………
由于格式问题,没有全部转载,全文在一下网站
http://www.999e.cn/viewthread.php?tid=1491
全程分析用托管C++编写Windows服务
用ATL编写Windows服务
用C语言编写Windows服务程序的五个步骤—编程爱好者网站 programfan.com
用C#编写发手机中文短信息(windows服务程序编写)
用C编写mex程序
【转】Windows服务编写综述 - XY - 博客园
用tcpdump分析协议后用C语言自己编写一个BBS发贴机器人
合伙托管服务器全程体验
合伙托管服务器全程体验
用C语言编写CGI程式-源码天堂-华夏名网资讯中心 虚拟主机,域名注册,双线虚拟主机,服务...
用VIM编写C/C++程序
用VIM编写C/C++程序
用tcpdump分析协议后用C语言自己编写一个BBS发贴机器人--Linux软件下载源码编...
用VC编写基于Windows的精确定时程序
用VC编写基于Windows的精确定时程序
用C语言编写简单的接口程序
用C语言编写简单的接口程序
用VC6.0编写Word插件(Office2K、XP、03) - C/C++/VC/MFC...
用路径分析的方法编写测试用例
主力坐庄全程分析
主力坐庄全程分析
Google推出网页设计软件 提供免费托管服务
Windows 服务全攻略
如何删除windows服务