M
Hi an alle, habe gerade einen Dienst programmiert. Jetzt möchte ich dass dieser Dienst nach dem Installieren gestartet wird.
In einem Tutorial habe ich gelesen, dass es folgendermaßen funktionieren müsste:
if(InstallService())
{
printf("\n\nService Installed Sucessfully\n");
SERVICE_TABLE_ENTRY ServiceTable[2];
ServiceTable[0].lpServiceName = L"David Report Service";
ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;
ServiceTable[1].lpServiceName = NULL;
ServiceTable[1].lpServiceProc = NULL;
// Start the control dispatcher thread for our service
if(!StartServiceCtrlDispatcher(ServiceTable))
{
DWORD dw = GetLastError();
TCHAR szBuf[80];
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
wsprintf(szBuf,
L"StartServiceCtrlDispatcher failed with error %d: %s",
dw, lpMsgBuf);
WriteToLog(reinterpret_cast<char*>(szBuf));
}
}
Leider stürzt der Service beim Aufruf von StartServiceCtrlDispatcher ab mit der Meldung 1063: The service process could not connect to the service controller.
Was ist hier falsch???
Gruß
mr.main