Я хочу использовать журнал в моем приложении C ++. Однако я хотел бы использовать средство просмотра событий Windows (10) вместо текстовых файлов. Я обнаружил некоторые странные звонки, которые я даже не знаю, что означают параметры — ReportEvent, OpenEventLog и некоторые другие Функции регистрации событий. Я также не могу использовать управляемый код из-за некоторых ограничений в моем приложении.
Я также пытался использовать код на этом ссылка на сайт, но я получаю ошибки компиляции (пространство имен ‘System’ не определено — кажется, что некоторые включаемые файлы отсутствуют …).
Я не нашел пример кода, который работает еще.
Я был бы признателен за пример кода, если это возможно — просто запись в журнал из локального приложения, встроенного в неуправляемый C ++. Может кто-нибудь помочь?
Ваша ссылка не компилируется, потому что она управляется 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 ++. Если вы можете написать управляемый код для вашего компонента журналирования, с ним станет легче иметь дело
Других решений пока нет …