Невозможно получить полную строку описания записи журнала событий

У меня есть приложение MFC, которое читает и отображает записи журнала событий с помощью API :: ReadEventLog (). Проблема заключается в чтении строки сообщения «Описание» записи журнала событий. Приложение MFC не может прочитать всю строку сообщения «Описание» и отображает только ее часть. Однако средство просмотра журнала системных событий Windows правильно считывает и отображает полную строку сообщения «Описание».

Я обеспечил, чтобы мое приложение MFC считывало всю строку сообщения «Описание», получая все строки, предоставленные переменными-членами «NumStrings» и «StringOffset» структуры EVENTLOGRECORD, и объединяя их все. Также, как упоминалось в MSDN, мое приложение загружает файл библиотеки сообщений с конкретным именем источника (путь к которому указан в реестре в HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Application [SourceName]), который дополнительно содержит дополнительную информацию о строке сообщения, и объединяет ее с ранее прочитанные строки.

Мне все еще не удается получить всю строку сообщения «Описание».

Пожалуйста, предоставьте любую помощь для решения проблемы.

С уважением,

Сантош.


person Community    schedule 19.03.2010    source источник


Ответы (1)


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

Возможно, в описании есть встроенные символы NUL, из-за которых ваш код MFC преждевременно завершает строку при ее отображении, даже если исходная строка была получена правильно?

person Eddy Carroll    schedule 07.01.2011