微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CreateService 服务程序的服务依赖

写的一个服务依赖于MysqL,启动的时候总是说"错误1075:依存服务不存在或已标记删除",但是MysqL已经在运行,打开注册HKEY_LOCAL_MACHINE\System\CurrentControlSet\services,发现自己写的服务的DependOnService字段的值里面除了MysqL之外,外面跟了一串乱码!删掉乱码也没用,不是能随便改的,DependOnService的类型是多字符串值,最后仔细参考了MSDN中对CreateService的lpDependencies的说明:

SC_HANDLE WINAPI CreateService(
  _In_SC_HANDLE hSCManager,_In_LPCTSTR lpServiceName,_In_opt_LPCTSTR lpdisplayName,_In_DWORD dwDesiredAccess,_In_DWORD dwServiceType,_In_DWORD dwStartType,_In_DWORD dwErrorControl,_In_opt_LPCTSTR lpBinaryPathName,_In_opt_LPCTSTR lpLoadOrderGroup,_Out_opt_LPDWORD lpdwTagId,_In_opt_LPCTSTR lpDependencies,_In_opt_LPCTSTR lpServiceStartName,_In_opt_LPCTSTR lpPassword
);

lpDependencies [in,optional]

A pointer to a double null-terminated array of null-separated names of services or load ordering groups that the system must start before this service. Specify NULL or an empty string if the service has no dependencies. Dependency on a group means that this service can run if at least one member of the group is running after an attempt to start all members of the group.

You must prefix group names with SC_GROUP_IDENTIFIER so that they can be distinguished from a service name,because services and service groups share the same name space.

就是说要把_T("MysqL")改成_T("MysqL\0")!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐