イベントログへの書き込み

[戻る]
TOM 2005/05/16(月) 09:36:41
Windows2000上でコマンドラインから引数(ソース名、イベントの種類、イベントのID、
出力メッセージ)でもって、イベントログに出力するプログラムを作ろうとしています。
メッセージリソースは作らず、コマンドラインからの引数をそのまま出力しようとしてい
るのですが、ReportEventの引数の渡し方がまずいみたいで、コンパイルが通りません。
それと、ReportEventの8番目の引数をNULLにすれば、コンパイルは通るのですが、実行
しても何もイベントログに吐き出されない状況です。
すいませんが、ご教授よろしくお願いします。

void WriteEventlog(char *szSourceName, char *szKind, DWORD numMessage, char 
*szText) {
   HANDLE hEventLog;
   char *Kind[] = {NULL};
   char *message[] = {NULL};
   WORD info_type;
   LONG dwMessage = numMessage;

   Kind[0] = szKind;
   message[0] = szText;

   if(strcmp(Kind[0],"error")==0){
       info_type=EVENTLOG_ERROR_TYPE;
   }else if(strcmp(Kind[0],"warning")==0){
       info_type=EVENTLOG_WARNING_TYPE;
   }else{
       info_type=EVENTLOG_INFORMATION_TYPE;
   }

   hEventLog = RegisterEventSource(NULL, szSourceName);

   ReportEvent(
       hEventLog,
       info_type,
       0,
       dwMessage,
       NULL,
       1,
       0,
       NULL,
       NULL);

   DeregisterEventSource(hEventLog);

}

AC 2005/05/16(月) 11:15:25
> error C2664: 'ReportEventA' : 8 番目の引数を 'char *[1]' から '
> const char ** ' に変換できません。 (新しい機能 ; ヘルプを参照)
> 変換で修飾子が失われます。
のエラーでしょうか?

(const char**)message,
としてキャストしてみてはどうでしょうか?

TOM 2005/05/16(月) 18:40:02
ありがとうございます。
うまくいきました。m(__)m

dark 2005/05/16(月) 20:39:06
マルチポストしたうえ解決チェック無かよ。。。
http://forums.belution.com/ja/cpp/000/031/74s.shtml

しかも、同じ文章。

AC 2005/05/16(月) 20:45:30
[[解決]]
あらら、チェックしていなかった。
本人じゃないけど、解決

古いスレッドには追加発言できません。