15,471
社区成员
发帖
与我相关
我的任务
分享
//当hCallMod这个是模块MFC42LOG.DLL时就会有问题,其他模块没问题.
IMAGE_DOS_HEADER * pDosHeader = (IMAGE_DOS_HEADER *)hCallMod;
IMAGE_OPTIONAL_HEADER * pOptHeader = (IMAGE_OPTIONAL_HEADER *)
((BYTE *)hCallMod + pDosHeader->e_lfanew + 24 );
IMAGE_IMPORT_DESCRIPTOR * pImport = (IMAGE_IMPORT_DESCRIPTOR *)
((BYTE *)hCallMod +
pOptHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);
while( pImport->Name )
{
char * pszModName = (char *)((BYTE *)hCallMod + pImport->Name);//调试到这里时pszModName=0X61BEFFF,分明是有值,为什么说expression cannot be envaluted
DWORD dwError = GetLastError();//这里返回998:内存分配访问无效.
if(lstrcmpi(pszModName,pDestModName)==0)//程序死在这里,原因就是pszModName的问题;
break;
pImport++;
}