- Win32API質問箱 Build117
706 :デフォルトの名無しさん[sage]:2014/06/26(木) 20:35:34.23 ID:uNXRCBxV - http://d.hatena.ne.jp/code/20041129
確かにMSDN日本語版には誤訳が多いけれど、こんな重要な注意書きを丸々削るのは止めてくれぃ。 http://d.hatena.ne.jp/youandi/20091031/p2 p.148 で PulseEvent() が取り上げられているんだけど、 意図した動作をしないため使ってはいけない関数。 Monitor.PulseAll() は問題ないんだけど。 blog で取り上げようかしら… NT Kernel が過去に犯した2つの欠陥の1つ ( 2009-10-30 14:53:06 ) en-us のほうにはしっかり 「This function is unreliable and should not be used. It exists mainly for backward compatibility.」 と書いてある ( 2009-10-30 14:58:44 ) http://msdn.microsoft.com/en-us/library/ms684914%28VS.85%29.aspx DWORD n; HANDLE eventlog = OpenEventLog(NULL, "Application"); HANDLE event = CreateEvent(NULL, TRUE, FALSE, NULL); NotifyChangeEventLog(eventlog, event); WaitForSingleObject(event, INFINITE); CloseHandle(event); GetNumberOfEventLogRecords(eventlog, &n); printf("%d\n", n); ReadEventLog(省略); CloseEventLog(eventlog);
|