Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

создать файл сообщений (разработка службы) [D6, WinXP]


Anonymous ©   (2004-04-22 05:38:00) 

Хочу чтобы в EventLog служба писала сообщения из exe-файла.
Как создать файл сообщений и включить его в проект.
Про mc.exe (Microsoft message compiler), знаю но прикрутить получившийся rc файл к проекту не смог.
Посоветуйте как поступить.
Заранее благодарен.


Digitman   (2004-04-22 14:17:00) [1]


> Прописал в проекте {$R 1.rc}


в проекте ты не вправе использовать *.rc, только - *.res

файл *.res получается из файла *.rc при помощи входящего в состав Делфи компилятора ресурсов

файл, обрабатываемый компилятором ресурсов, должен выглядеть, наверно, примерно так

MyMsgTable RT_MESSAGETABLE '1.rc'

полученный в рез-те компиляции res-файл ты как раз и должен подключить директивой $R, чтобы при линковке проекта этот ресурс был включен в исп.файл


Бармалей   (2004-04-22 14:12:00) [2]

С этим вопросом я тоже долго разбирался, но наконец все выяснил. Есть 2 пути решения. Черкани письмецо на barma<собака>front.ru ,
вышлю рекомендации и пример, но не раньше понедельника - мало времени.


clickmaker   (2004-04-22 14:09:00) [3]

Add to project - 1.rc


Anonymous   (2004-04-22 13:33:00) [4]

Написал файл сообщений следующего вида:
"MessageId    = 0
Severity     = Success
Facility     = Application
SymbolicName = MSG_ERR
Language = English"
скомпилировал при помощи mc.exe
Получил 3 файла .BIN,.h,.rc
Прописал в проекте {$R 1.rc} а линкер дает ошибку Unsupported 1-bit resource.
Подскажите как сделать правильно.

{$R 1.rc}


Digitman   (2004-04-22 10:59:00) [5]

почему не удалось подключить ресурс ?

его тип д.б. RT_MESSAGETABLE

кр.того, в реестре должна иметься ветка

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySvcApp

а в ней минимум два параметра

EventMessageFile - полный путь к твоему приложению
TypesSupported - кол-во типов сообщений, поддерживаемое тобой


Anonymous   (2004-04-22 09:55:00) [6]

По умолчанию.

EventType: DWord = 1;
Category: Integer = 0;
ID: Integer = 0

LogMessage(".....",EVENTLOG_ERROR_TYPE);


Digitman   (2004-04-22 09:39:00) [7]

а как ты задаешь параметры EventType, Category, ID ?


Anonymous   (2004-04-22 08:49:00) [8]

Спасибо.
Я так и делаю но, перед тексом моего сообщения вставляется:

"Не найдено описание для события с кодом ( 0 ) в источнике (...). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. Попробуйте использовать ключ /AUXSOURCE= для получения этого описания, - дополнительные сведения об этом содержатся в справке. В записи события содержится следующая информация:"

Я хочу узнать как избавиться от этой записи.


Digitman   (2004-04-22 08:27:00) [9]


> Anonymous


а оно тебе точно надо ? может, велосипед изобретаешь ?

ведь сервисы изначально уже поддерживают механизм протоколирования, позволяя регистрировать события в системном EventLog-реестре

посмотри внимательней на описание метода TService.LogMessage, это как раз то что тебе нужно


Наверх

Титульная страница Поиск, карта сайта Написать письмо