转:http://blog.csdn.net/fighton/article/details/8936191写的一个服务依赖于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")!
|