ReadEventLog()で取得した時間がずれるのですが・・・ – プログラミング – Home

ReadEventLog()で取得した...
 
通知
すべてクリア

ReadEventLog()で取得した時間がずれるのですが・・・


はにはに
 はにはに
(@はにはに)
ゲスト
結合: 20年前
投稿: 1
Topic starter  

初めまして、VC++初心者のはにはにです。

現在、NT系OSのイベントビューアからイベントログを取得して、
それを表示するというものを作っています。
イベントログの取得はReadEventLog()を使用しているのですが、
WindowsNTにて起動させると、時間が-17時間ずれてしまいます。(2000、XPでは、ずれません
でした)
タイムゾーンを変更していろいろ試してみると、標準時だと正確に(イベントビューアに表示さ
れている時間と一致)表示されます。
時間がなぜずれるのかわかりません。また、その解決策を教えていただきたいです。
(日本時間(GMT+9時間)にて、-17時間ずれます)

<ソースの一部>(エラー処理は省略します)
HANDLR hEvent;
EVENTLOGRECORD *Event;
DWORD Bufsize;
DWORD Read;
DWORD Needed;
BOOL bret;
char *EventTime;

hEventLog = OpenEventLog(NULL,System);

for(;;){
Bufsize = 1;
Event = (EVENTLOGRECORD*)malloc(Bufsize);

bret = ReadEventLog(hEventLog,
EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0,
Event,
BufSize,
&Read,
&Needed);
free(Event)
Bufsize = Needed;
Event = (EVENTLOGRECORD*)malloc(Bufsize);

bret = ReadEventLog(hEventLog,
EVENTLOG_SEQUENTIAL_READ | EVENTLOG_FORWARDS_READ,
0,
Event,
Bufsize,
&dwRead,
&dwNeeded);

EventTime = ctime((const long*)&Event->TimeGenerated);
}

CloseEventLog(hEvent);

開発環境
WindowsXP SP2、VC++6.0


引用解決済
トピックタグ
ころたこ
 ころたこ
(@ころたこ)
ゲスト
結合: 20年前
投稿: 1
 

WindowsNTのDLLのバグではありませんか?
スタティックリンクでビルドしてみてください。


返信引用
あてずっぽ
 あてずっぽ
(@あてずっぽ)
ゲスト
結合: 20年前
投稿: 1
 

> スタティックリンクでビルドしてみてください。

逆に 2000/XP 系の処理をスタティックリンクしてるせいで
NT で誤動作している可能性も確認してみよう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました