EventLogMsgs.mc - Создание файла ресурсов (DLL)

В настоящее время у меня есть файл ресурсов, который я использую для своего пользовательского журнала событий. Кажется, что все работает идеально, когда я записываю событие в журнал с намерениями использовать его в целях информации / успеха. Но когда я пишу одно из намерений ошибки, я получаю...

Описание для события с кодом 301 из источника X не может быть найдено...

Мне было интересно... Связано ли это с тем фактом, что все мои категории имеют уровень серьезности = успех? Нужна ли мне также категория для службы с уровнем серьезности = ошибка?


Пример успешной записи в журнале:

Идентификатор события: 101, Уровень: Информация, Категория задачи: (8) Сервис

Пример НЕ успешной записи в журнале:

КОД события: 301, уровень: ошибка, категория задачи: (8) служба


Ниже приведен мой текущий файл текстовых сообщений, который я преобразую в файл ресурсов для категорий и сообщений...

; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; //   mc -s EventLogMsgs.mc
; //   rc EventLogMsgs.rc
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res 

; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************

MessageId=0x1
Severity=Success
SymbolicName=GENERAL_CATEGORY
Language=English
General
.

MessageId=0x2
Severity=Success
SymbolicName=DATABASE_CATEGORY
Language=English
Database Query
.

MessageId=0x3
Severity=Success
SymbolicName=LOGON_CATEGORY
Language=English
Logon
.

MessageId=0x4
Severity=Success
SymbolicName=LOGOFF_CATEGORY
Language=English
Logoff
.

MessageId=0x5
Severity=Success
SymbolicName=EMAIL_CATEGORY
Language=English
Email
.

MessageId=0x6
Severity=Success
SymbolicName=PRINTER_CATEGORY
Language=English
Printer
.

MessageId=0x7
Severity=Success
SymbolicName=IO_CATEGORY
Language=English
IO
.

MessageId=0x8
Severity=Success
SymbolicName=SERVICE_CATEGORY
Language=English
Service
.

MessageId=0x9
Severity=Success
SymbolicName=DEBUG_CATEGORY
Language=English
Debug
.

; // - Event messages -
; // *********************************

MessageId = 100
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID100
Language=English
%1
.

MessageId = 101
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID101
Language=English
%1
.

MessageId = 102
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID102
Language=English
%1
.

MessageId = 103
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID103
Language=English
%1
.

MessageId = 104
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID104
Language=English
%1
.

MessageId = 105
Severity = Success
Facility = Application
SymbolicName = SMESSAGE_ID105
Language=English
%1
.

MessageId = 200
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID200
Language=English
%1
.

MessageId = 201
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID201
Language=English
%1
.

MessageId = 202
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID202
Language=English
%1
.

MessageId = 203
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID203
Language=English
%1
.

MessageId = 204
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID204
Language=English
%1
.

MessageId = 205
Severity = Warning
Facility = Application
SymbolicName = WMESSAGE_ID205
Language=English
%1
.

MessageId = 300
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID300
Language=English
%1
.

MessageId = 301
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID301
Language=English
%1
.

MessageId = 302
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID302
Language=English
%1
.

MessageId = 303
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID303
Language=English
%1
.

MessageId = 304
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID304
Language=English
%1
.

MessageId = 305
Severity = Error
Facility = Application
SymbolicName = EMESSAGE_ID305
Language=English
%1
.

1 ответ

Решение

Актуальная проблема: я неправильно создавал файл, и номера событий, которые, как я думал, создавал, влияют на другое число. Я выяснил, что происходило после копания в файл myfile.c, созданный при выполнении команд mc.exe и rc.exe. Просматривая этот файл, я понял, что значения DWORD (HEX) не складываются в целое число, которое я ожидал.

Моя проблема: суть в том, что моя проблема была просто потому, что я использовал "Серьезность = Предупреждение" на #200, а не "Серьезность = Успех". Когда я изменил это, я наконец получил номера событий, которые я искал, чтобы быть созданным. Было несколько других улучшений, которые я сделал в моем файле (как показано ниже), но это было основной причиной, по которой у меня возникла проблема.

Исправленный файл сообщений журнала событий: Ниже вы найдете мой правильный файл сообщений журнала событий. Я также решил разбить его на два файла, разделив Категории и События. (Вам не нужно)

categories.mc

; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; //   mc -s EventLogMsgs.mc
; //   rc EventLogMsgs.rc
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res 

; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************

MessageIdTypedef = WORD

LanguageNames = (English=0x409:MSG00409)

MessageId = 0x1
SymbolicName=GENERAL_CATEGORY
Language=English
General
.

MessageId = 0x2
SymbolicName=DATABASE_CATEGORY
Language=English
Database
.

MessageId = 0x3
SymbolicName=LOGON_CATEGORY
Language=English
Logon
.

MessageId = 0x4
SymbolicName=LOGOFF_CATEGORY
Language=English
Logoff
.

MessageId = 0x5
SymbolicName=EMAIL_CATEGORY
Language=English
Email
.

MessageId = 0x6
SymbolicName=PRINTER_CATEGORY
Language=English
Printer
.

MessageId = 0x7
SymbolicName=IO_CATEGORY
Language=English
IO
.

MessageId = 0x8
SymbolicName=SERVICE_CATEGORY
Language=English
Service
.

MessageId = 0x9
SymbolicName=DEBUG_CATEGORY
Language=English
Debug
.

events.mc

; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; //   mc -s EventLogMsgs.mc
; //   rc EventLogMsgs.rc
; //   link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res 

; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************

; // - Event messages -
; // *********************************

MessageIdTypedef = DWORD

LanguageNames = (English=0x409:MSG00409)

MessageId = 100
SymbolicName = SMESSAGE_ID100
Language=English
%1
.

MessageId = 101
SymbolicName = SMESSAGE_ID101
Language=English
%1
.

MessageId = 102
SymbolicName = SMESSAGE_ID102
Language=English
%1
.

MessageId = 103
SymbolicName = SMESSAGE_ID103
Language=English
%1
.

MessageId = 104
SymbolicName = SMESSAGE_ID104
Language=English
%1
.

MessageId = 105
SymbolicName = SMESSAGE_ID105
Language=English
%1
.

MessageId = 200
SymbolicName = WMESSAGE_ID200
Language=English
%1
.

MessageId = 201
SymbolicName = WMESSAGE_ID201
Language=English
%1
.

MessageId = 202
SymbolicName = WMESSAGE_ID202
Language=English
%1
.

MessageId = 203
SymbolicName = WMESSAGE_ID203
Language=English
%1
.

MessageId = 204
SymbolicName = WMESSAGE_ID204
Language=English
%1
.

MessageId = 205
SymbolicName = WMESSAGE_ID205
Language=English
%1
.

MessageId = 300
SymbolicName = EMESSAGE_ID300
Language=English
%1
.

MessageId = 301
SymbolicName = EMESSAGE_ID301
Language=English
%1
.

MessageId = 302
SymbolicName = EMESSAGE_ID302
Language=English
%1
.

MessageId = 303
SymbolicName = EMESSAGE_ID303
Language=English
%1
.

MessageId = 304
SymbolicName = EMESSAGE_ID304
Language=English
%1
.

MessageId = 305
SymbolicName = EMESSAGE_ID305
Language=English
%1
.
Другие вопросы по тегам