看了不少相关的作为后台服务启动的文章,有些地方不明白...
1.大部分文章中都提到由
main()->StartServiceCtrlDispatcher()->servicemain()
从而引发服务的启动
疑问:服务在服务控制管理其(SCG)中启动的时候,是从main作为入口吗?还是直接进入StartServiceCtrlDispatcher()?
如果我把StartServiceCtrlDispatcher()作为某个函数的内置,不一定在main之后启动,由某些事件控制才启动,如输入某些特别的字符再启动,这可以吗?

解决方案 »

  1.   

    你的这个问题我以前也碰到,后来找了一篇文章,看了就清楚多了。文章比较长,提供你一个地址:
    相信你看了会很有收获!Win32程序设计之服务
    http://www.yesky.com/SoftChannel/72342371911598080/20010528/181751.shtml
      

  2.   

    服务的代码必须要有一个一般的main或者WinMain函数。这个函数应该会马上调用StartServiceCrtlDispatcher函数。通过调用这个函数,你可以让SCM得到ServiceMain函数的指针,这样在SCM要启动该服务时,就可以调用它
    StartServiceCtrlDispatcher()放在main()之后就可以了。你试试
      

  3.   

    看了的短信,不知你还有什么问题.这个地址你参考:http://www.codeproject.com/system/serviceskeleton.asp?target=serviceBeginner's introductory guide to writing,installing,starting,stopping NT services