近日因工作需要,要写windows服务编程 ,但以前未写过,在网上收集了相关资料,发现一些问题。现和大家一起分享,希望大家不要重走这条路。
1、写得比较好的文章有《关于windows服务的编程方法》和《 用C语言编写Windows服务程序的五个步骤》。
2、如果要想用上面二篇文章的例子的话,要注意一定要自己新创建一个项目,然后把相关代码粘贴上去。否则服务无法启动的。我分析了一下,主要的原因是因为没有VC自动生成的 "Stdafx.h"这个文件,就算你从别的地方拷贝一个,好像没有用,一定要自己新建项目。
3、编译好上面二篇文章中的任何一个程序后,我们回到控制台下。创建服务,即输入命令:sc create 服务名 binPath= Filepath.(这里要注意,在“Filepath"前和“=”后面有一个空格,没有的话,无法创建服务。此时服务只是创建了,但并没有运行,运行的话可以通过多种方式。我只介绍一种,就是在“运行”对话框内,输入services.msc,然后找到我们刚刚创建的“服务名”,右击,选择启动,一切正常的话,此时我们的那个应用程序才开始运行,不要以为创建了服务名,我们的应用程序就会运行,这是一个错误。
4、调试服务程序。有N种调试方法,但我只会一种。打开windbg,选择File->Attatch to a Process 或(F6),找到我们的服务应用程序名。然后就可以像调试一般程序那样调试服务程序了。
不知我讲清楚否,有任何问题,我们可以沟通,谢谢!