アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。

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);

A 回答 (2件)

キャストでしたら


pBuf = (EVENTLOGRECORD)hDIB;
ではなく
pBuf = (EVENTLOGRECORD*)hDIB;
なるかと思います。
    • good
    • 0

そのメモリ関数は16bit時代の遺産です。


今は素直に32bit用のHeap関数かスタックを使うべきでしょう。

もちろん正しい使い方をすればエラーは出なくなりますが、お勧めしないので気になるならヘルプを見て下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!