写的一个服务依赖于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.