Как запретить запись событий из ATL EXE Service?
От: Lonely Dog Россия  
Дата: 09.06.09 17:16
Оценка:
Привет!

Есть ATL EXE service. При старте он пишет события "Service started", "Service stopped" и пр.
Проблема в том, что эти тексты зашиты в код, а значит, не локализуемы.
Кроме того, в качестве имени источника событий там используется имя сервиса.
В общем, эти моменты меня категорически не устраивают.

Соответственно, встал вопрос о запрете на логирование этих событий.
Как это можно сделать?

Пока вижу только вариант с переопределением через #define функции ReportEvent.
Грубо говоря, вот так работает (кусок из stdafx.h):
#include <Windows.h>


#undef ReportEvent
#define ReportEvent
#include <atlbase.h>
#undef ReportEvent
#ifdef UNICODE
#define ReportEvent  ReportEventW
#else
#define ReportEvent  ReportEventA
#endif // !UNICODE


Есть ли какие-нибудь другие способы добиться желаемого результата?
Re: Как запретить запись событий из ATL EXE Service?
От: rus blood Россия  
Дата: 10.06.09 09:17
Оценка:
Здравствуйте, Lonely Dog, Вы писали:


LD>Есть ли какие-нибудь другие способы добиться желаемого результата?


ATL — открытая библиотека.
Что мешает переписать кишки CAtlExeService, или как он там называется? ...
Имею скафандр — готов путешествовать!
Re[2]: Как запретить запись событий из ATL EXE Service?
От: Lonely Dog Россия  
Дата: 10.06.09 16:44
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>ATL — открытая библиотека.

RB>Что мешает переписать кишки CAtlExeService, или как он там называется? ...
Ничего. Просто не хочу копировать к себе в проект 100 строчек кода из ATL.
Copy&Paste не рулит.
Re[3]: Как запретить запись событий из ATL EXE Service?
От: rus blood Россия  
Дата: 10.06.09 17:02
Оценка:
Здравствуйте, Lonely Dog, Вы писали:

LD>Здравствуйте, rus blood, Вы писали:


RB>>ATL — открытая библиотека.

RB>>Что мешает переписать кишки CAtlExeService, или как он там называется? ...
LD>Ничего. Просто не хочу копировать к себе в проект 100 строчек кода из ATL.
LD>Copy&Paste не рулит.

Ну, если твой проект от этого разрастется в 10-100 раз, то тогда действительно не стоит.
Тогда вариант с define-ами — это твой путь...

В ATL очень простая поддержка сервисов.
Фактически, десяток вызовов API, обернутых в сахар из шаблонных нотификаторов.
Если ты из этого хочешь нагородить что-то серъезное, тебе придется переписать многие вещи оттуда.
ATL здесь — как наглядный пример, дающий возможность быстро "пощупать", что такое сервис.
Имею скафандр — готов путешествовать!
Re[4]: Как запретить запись событий из ATL EXE Service?
От: Lonely Dog Россия  
Дата: 11.06.09 07:21
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Ну, если твой проект от этого разрастется в 10-100 раз, то тогда действительно не стоит.

RB>Тогда вариант с define-ами — это твой путь...
Мысль понятна. Я просто думаю, вдруг в VS2010 или VS2012 они подправят этот код еще как-нибудь. Мне его опять придется копировать к себе.

RB>В ATL очень простая поддержка сервисов.

RB>Фактически, десяток вызовов API, обернутых в сахар из шаблонных нотификаторов.
RB>Если ты из этого хочешь нагородить что-то серъезное, тебе придется переписать многие вещи оттуда.
RB>ATL здесь — как наглядный пример, дающий возможность быстро "пощупать", что такое сервис.
Да, согласен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.