2016-05-04 21 views
0

私のC++アプリケーションでログを使用します。しかし、テキストファイルの代わりにWindows(10)イベントビューアを使用したいと思います。私はいくつかの奇妙な呼び出しを見つけました。パラメータが何を意味するのかわからない - ReportEventOpenEventLogおよびその他のEvent Logging functions。私はまた、私のアプリケーションのいくつかの制限のため、マネージコードを使用することはできません。C++を使用してWindows上でイベントビューアにログ

このlinkのコードを使用しようとしましたが、コンパイルエラーが発生しました(名前空間 'システム'が未定義です - いくつかのインクルードファイルが見つからないようです...)。

まだ動作するサンプルコードは見つかりませんでした。

可能であれば、サンプルコードがありがたいです - 管理されていないC++でビルドされたローカルアプリケーションからの単純なロギング。助けてもらえますか?あなたが書きたいすべてが、それは簡単だ文字列である場合にはそれがC++に(gcnewの使用を注意してください)

を管理しているため

+2

「システム」名前空間が表示されるとすぐに、管理対象の土地に行き渡り、管理されていないコード例の検索を停止することができます。 – user4581301

+0

ありがとう、私はそれを知らなかった - 私は本当に奇妙なことを発見した –

+0

ドキュメントをお試しください。 –

答えて

5

あなたのリンクはコンパイルされません、あなたが必要とするすべてはRegisterEventSourceReportEventです。

それはこの約です:

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++にかなり関わっています。ロギングコンポーネントのマネージコードを書くことができれば、扱いやすくなります。

+1

'' LPCWSTR custom_log_name = L "MyLogName"; ''と '' LPCWSTR message = L "を書きます' 'const char *'の代わりにイベントログ "; –

関連する問題