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);
}
> error C2664: 'ReportEventA' : 8 番目の引数を 'char *[1]' から '
> const char ** ' に変換できません。 (新しい機能 ; ヘルプを参照)
> 変換で修飾子が失われます。
のエラーでしょうか?
(const char**)message,
としてキャストしてみてはどうでしょうか?
ありがとうございます。
うまくいきました。m(__)m
あらら、チェックしていなかった。
本人じゃないけど、解決