我有一个MFC应用程序,它在Windows 2008 R2上读取WOW64环境中的系统(即应用程序/系统/安全)事件日志。我在::ReadEventLog() Windows 2008 R2中遇到了std 函数的问题。下面我提供了代码片段,但是相同的代码/API在Windows WOW64 & x64环境中运行得很好。错误代码'87‘指的是“参数不正确”,但在我看来,传递给::ReadEventLog()函数的参数似乎是正确的。
代码
//BufferSizeconst BUFFER_SIZE = 1024*10
字节l_bBufferSizeBUFFER_SIZE;
EVENTLOGRECORD* l_pEvntLogRecord =空;
l_pEvntLogRecord = (EVENTLOGRECORD *) &l_bBufferSize;:SetLastError(0);
/*调整“计数器”以读取日志。'l_nReadRecordIndex‘与列表控件一起映射,例如,在按下键时,'l_nReadRecordIndex’设置为"GetCountPerPage() + 1“--这是一种情况,因为它们的情况很多。*/
DWORD l_dwLogCounter = (GetTotalNumberOfRecords() - l_nReadRecordIndex) + 1;
//按"nCntToReadRecords“读取日志。
for(l_dwLogCounter;l_nNoOfRecTobeRead <= nCntToReadRecord;l_dwLogCounter-,l_nNoOfRecTobeRead++) {
//阅读实际位置。
如果(0 != ::ReadEventLog( m_hEventLogHandle,EVENTLOG_SEEK_READ|EVENTLOG_FORWARDS_READ ),
l\_dwLogCounter, l\_pEvntLogRecord, BUFFER\_SIZE, &l\_dwReadBytes, &l\_dwNeedBytes)){
DWORD l_dwErrCode = 0;
l_dwErrCode = ::GetLastError(); //87 is returned
return FALSE
}}
//数据人口代码
如果有人意识到类似的问题,或者在类似的问题上工作过,请告诉我解决方案。请参考上面的代码片段,并让我知道以下的事情,a)不正确的参数。( b)是它们读取事件日志的任何其他方式。
提前谢谢。
-加内什
发布于 2012-11-28 15:41:56
这是一个错误,请检查MS的KB http://support.microsoft.com/kb/177199中的这个条目
https://stackoverflow.com/questions/3132392
复制相似问题