Вход в средство просмотра событий в Windows с C++

Я хочу использовать журнал в моем приложении C++. Однако я хотел бы использовать средство просмотра событий Windows (10) вместо текстовых файлов. Я обнаружил некоторые странные вызовы, которые я даже не знаю, что означают параметры - ReportEvent, OpenEventLog и некоторые другие функции регистрации событий. Я также не могу использовать управляемый код из-за некоторых ограничений в моем приложении.

Я также пытался использовать код по этой ссылке, но я получаю ошибки компиляции (пространство имен 'System' не определено - кажется, что некоторые включаемые файлы отсутствуют...).

Я не нашел пример кода, который работает еще.

Я был бы признателен за пример кода, если это возможно - просто запись в журнал из локального приложения, встроенного в неуправляемый C++. Может кто-нибудь помочь?

1 ответ

Решение

Ваша ссылка не компилируется, потому что она управляется C++ (обратите внимание на использование gcnew)

Если все, что вы хотите написать, это строки, это просто, все, что вам нужно, это RegisterEventSource а также ReportEvent,

Это примерно так:

const char* custom_log_name = "MyLogName";

// create registry keys for ACLing described on MSDN: http://msdn2.microsoft.com/en-us/library/aa363648.aspx

HANDLE event_log = RegisterEventSource(NULL, custom_log_name);
const char* message = "I'm in an event log";
ReportEvent(event_log, EVENTLOG_SUCCESS, 0, 0, NULL, 1, 0, &message, NULL);

Это позволяет только для записи строк. Гораздо более сложное (и полезное) ведение журнала возможно, но оно довольно тесно связано с прямым C++. Если вы можете написать управляемый код для вашего компонента журналирования, с ним станет легче иметь дело.

Другие вопросы по тегам