求问windows后台服务程序的问题!
我先说下我的编写思路,各位看看哪有问题。首先分2个工程,一个注册,一个启动。注册的工程是这样的,先是main函数,填充DispTable[],然后startServiceCtrlDispatcher,然后return结束main。接着写ServiceMain函数,先填充SERVICE_STATUS,然后RegisterServiceCtrlHandlerEx注册,里面的ControlHandler在后面写好。然后SetServiceStatus。接着就调用想放在服务里面的代码函数,我命名成ServiceSpecific,里面放只放了一个printf打印一个字符串。
接着是启动的工程,main函数里写把注册工程的服务名字和KEY值写好,用OpenSCManager得到系统SCM句柄,接着createservice创建一个SC_HANDLE,然后startService。 注册的工程编译完成,生成的exe文件,我把绝对路径放在启动工程的一个数组里,在createservice的lpBinaryPathName放进去。在编译启动工程的时候出现内存禁止访问,然后编译就停止了。我调试了以后发现createservice返回的空句柄。不知道是不是因为路径的问题。对服务程序的内部过程还是不太了解,网上的资料也不多,看了几遍也不是很清楚,求各位解答下~~~~