ReadProcessMemory读取失败 GetLastError为299,求高手解答
杭州浪子 2012-07-11 05:03:51 代码背景:记事本打开了一个190多K的文本文件,然后读取记事本的内容
DWORD dwBytes, dwAddr, dwLength = 0x000AB004, dwBase = 0x00890014;
BOOL bRet = FALSE;
//[00890014]
bRet = ReadProcessMemory(hProcess, (void*)dwBase, (void*)&dwAddr, 4, &dwBytes);
if (!bRet)
{
strMsg = strFullPath+_T(" -------- failed.");
m_list.InsertString(0, strMsg);
::SendMessage(hWindow, WM_CLOSE,NULL,NULL);
return;
}
//在内存中的文本内容是宽字符的。nFileLen为文本大小,301059bytes
TCHAR *pBuff = (TCHAR*)malloc(sizeof(TCHAR)*(nFileLen+1));
memset(pBuff, 0, (nFileLen+1)*sizeof(TCHAR));
bRet = ReadProcessMemory(hProcess, (void*)dwAddr, (void*)pBuff, nFileLen*sizeof(TCHAR), &dwBytes);
if (!bRet)
{
//--------------这个地方读取失败了。。。。GetLastError为299
free(pBuff);
strMsg = strFullPath+_T(" -------- failed.");
m_list.InsertString(0, strMsg);
::SendMessage(hWindow, WM_CLOSE,NULL,NULL);
return;
}
读取内容时 失败了,求指导。。。另外,记事本打开小一点的文本文件是没有问题的。。。。。就是大的文件是失败。。。