Ошибка 1053 при попытке запустить службу в Службе WindowsC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка 1053 при попытке запустить службу в Службе Windows

Сообщение Anonymous »

Я не могу запустить службу, созданную в C++Builder с использованием класса TService.
Я написал службу, которая ничего не делает, и я хочу ее запустить есть, но служба не запускается. Я регистрирую службу и запускаю ее в командной строке. Команда sc start MyService выполняется без ошибок, но статус службы запускается и не меняется на «работает». При запуске службы инструкция в функции ServiceStart() фиксирует ошибку:

Процессу службы не удалось подключиться к контроллеру службы

Процессу службы не удалось подключиться к контроллеру службы. p>

При запуске службы в окне «Службы» появляется ошибка:

Windows не удалось запустить службу резервного копирования папок на локальном компьютере.
Ошибка 1053: служба не ответила на сигнал запуска или управления
своевременно.

Вот мой код службы:
Unit1.cpp:
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TService1 *Service1;
//---------------------------------------------------------------------------

__fastcall TService1::TService1(TComponent* Owner): TService(Owner)
{
}
//--------------------------------------------------------------------------

void __stdcall ServiceController(unsigned CtrlCode)
{
Service1->Controller(CtrlCode);
}
//-------------------------------------------------------------------------

TServiceController __fastcall TService1::GetServiceController(void)
{
return (TServiceController) ServiceController;
}
//---------------------------------------------------------------------------

// Start serwisu
void __fastcall TService1::ServiceStart(TService *Sender, bool &Started)
{
Started = true; // Serwis uruchomiony
LogMessage("Service started successfully", EVENTLOG_ERROR_TYPE);
ReportStatus(); // Informuj system, że usługa jest gotowa
}
//----------------------------------------------------------------------------

// Główna funkcja serwisu
void __fastcall TService1::ServiceExecute(TService *Sender)
{
}

Project1.cpp:
#include
#include
#pragma hdrstop
#include
USEFORM("Unit1.cpp", Service1); /* TService: File Type */
//---------------------------------------------------------------------------
#define Application Svcmgr::Application
int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
// Windows 2003 Server requires StartServiceCtrlDispatcher to be
// called before CoRegisterClassObject, which can be called indirectly
// by Application.Initialize. TServiceApplication->DelayInitialize allows
// Application->Initialize to be called from TService->Main (after
// StartServiceCtrlDispatcher has been called).
//
// Delayed initialization of the Application object may affect
// events which then occur prior to initialization, such as
// TService->OnCreate. It is only recommended if the ServiceApplication
// registers a class object with OLE and is intended for use with
// Windows 2003 Server.
//
Application->DelayInitialize = true;
//
if ((!Application->DelayInitialize) || (Application->Installing()))
{
Application->Initialize();
}
Application->CreateForm(__classid(TService1), &Service1);
Application->Run();
}
catch (Exception &exception)
{
Sysutils::ShowException(&exception, System::ExceptAddr());
}
catch(...)
{
try
{
throw Exception("");
}
catch(Exception &exception)
{
Sysutils::ShowException(&exception, System::ExceptAddr());
}
}
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... ws-service
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»