• ベストアンサー

ReadEventLogについて

教えてください。 ReadEventLogでイベントログ情報を取得したいのですが、わからない所があります。 ReadEventLogのpBufはEVENTLOGRECORD型なのです。ですが、メモリを確保するためGlobalAllocを使いたいのですが、HGLOBAL(Void)型なのでキャストしてもうまくいきません。 型を変える方法があるのでしょうか? あるのであれば教えてください。 [ソース一部] EVENTLOGRECORD *pBuf = NULL; HGLOBAL hDIB; hDIB = GlobalAlloc(GMEM_FIXED, BufSize); pBuf = (EVENTLOGRECORD)hDIB; //★ここでエラー bResult = ::ReadEventLog(hEventLog,EVENTLOG_FORWARDS_READ | EVENTLOG_SEQUENTIAL_READ,0,pBuf,BufSize,&ReadBytes,&NextSize);

質問者が選んだベストアンサー

  • ベストアンサー
  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

キャストでしたら pBuf = (EVENTLOGRECORD)hDIB; ではなく pBuf = (EVENTLOGRECORD*)hDIB; なるかと思います。

その他の回答 (1)

  • hope10
  • ベストアンサー率48% (17/35)
回答No.2

そのメモリ関数は16bit時代の遺産です。 今は素直に32bit用のHeap関数かスタックを使うべきでしょう。 もちろん正しい使い方をすればエラーは出なくなりますが、お勧めしないので気になるならヘルプを見て下さい。

関連するQ&A