8
私は、win32 C(C++ではなく)で書かれた簡単なWindowsサービスを変更する必要があります。CのWindowsイベントログに書き込む方法はありますか?
eventcreate.exeを使用せずにWindowsイベントログにイベントログエントリを書き込むためのライブラリがありますか?それとも、C++プログラムとしてコンパイルするためにそれを変更する必要がありますか?
私は、win32 C(C++ではなく)で書かれた簡単なWindowsサービスを変更する必要があります。CのWindowsイベントログに書き込む方法はありますか?
eventcreate.exeを使用せずにWindowsイベントログにイベントログエントリを書き込むためのライブラリがありますか?それとも、C++プログラムとしてコンパイルするためにそれを変更する必要がありますか?
はい、機能ReportEventとそのexampleを参照してください。コンパイルするには
:の.mcファイルが.dllファイルにリンクされます.RESファイルにコンパイルされ
; // MyEventProvider.mc
; // This is the header section.
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)
LanguageNames=(English=0x409:MSG00409)
; // The following are the categories of events.
MessageIdTypedef=WORD
MessageId=0x1
SymbolicName=NETWORK_CATEGORY
Language=English
Network Events
... rest of file omitted
:
の.mc拡張子を持つイベントプロバイダのソースファイルは、次のようになりますメッセージ・テキスト・ファイルには、次のコマンドを使用します。メッセージコンパイラが生成されたリソースをコンパイルするには
mc -U provider.mc
を、次のコマンドを使用します。
rc provider.rc
がメッセージテーブルの文字列リソースを含むリソースのみのDLLを作成するには、次のコマンドを使用します(あなたは、Visual Studioコマンドプロンプトからコマンドを実行することができます):
link -dll -noentry provider.res
...
これをプログラムで実行するには、[ここ](http://msdn.microsoft.com/en-us/library/dd996928(v=vs.85).aspx)から開始することをお勧めします。 – Jon