.exe中查找数据块的问题 就是把用ReadFile()从.exe中读取出来的一块数据在.exe中查找小弟我已经实现(MFC做的),就是想看看还有没有更好的,效率更高的,有兴趣的朋友来讨论下,小弟将分送上! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那这样吧 我把实现的代码贴出来 大家给点意见 char lpFileName[] = "D:\\test.exe"; CFile file; if(!file.Open(lpFileName,CFile::modeReadWrite,NULL)) { AfxMessageBox("未打开文件!"); return FALSE; } CFileStatus FileStatus; if(!file.GetStatus(FileStatus)) return FALSE; file.SeekToBegin(); CString strBuff; int nRes=-1,SameNum=0,nReturn; strBuff.GetBufferSetLength(1024); for(long i=0;(i+1024- nStrLen)<(FileStatus.m_size);) { memset(strBuff.GetBuffer(0),'\0',1024); nReturn= file.Read(strBuff.GetBuffer(0),1024); nRes=strBuff.Find(m_cCopyData); if(nRes!=-1) { SameNum++; if(SameNum>=5)//&&m_bCurrent //发现 { //m_bCurrent=FALSE; m_cResult="发现!"; UpdateData(FALSE); //报警 file.Close(); return TRUE; } } else { //i=(i+1024)-nStrLen; if((long)(i+1024- nStrLen)>=(FileStatus.m_size)) break; file.Seek(i+1024-nStrLen,CFile::begin); i=i+1024-nStrLen; } } file.Close(); 下面四个错误怎么更改? 怎么响应IE控件里面的Ctrl+F 如何连接外网即时通信? 请问如何控制初始界面的大小? 文档/视图结构程序中,控制状态栏显示的函数一般放在哪个类中实现好啊? 关于RealPlayer G2 Control控件。(100分求交解) 关于系统计时的问题 為什么我的收藏夾不能用 哪里有中文MSDN下载! 关于阻塞和非阻塞模式的简单问题 在 vc++中怎么将 select count(*) from table 的返回值传给一个变量 怎么用vs2005编写非托管的程序呢
char lpFileName[] = "D:\\test.exe";
CFile file;
if(!file.Open(lpFileName,CFile::modeReadWrite,NULL))
{
AfxMessageBox("未打开文件!");
return FALSE;
} CFileStatus FileStatus;
if(!file.GetStatus(FileStatus))
return FALSE;
file.SeekToBegin();
CString strBuff;
int nRes=-1,SameNum=0,nReturn;
strBuff.GetBufferSetLength(1024);
for(long i=0;(i+1024- nStrLen)<(FileStatus.m_size);)
{
memset(strBuff.GetBuffer(0),'\0',1024);
nReturn= file.Read(strBuff.GetBuffer(0),1024);
nRes=strBuff.Find(m_cCopyData);
if(nRes!=-1)
{
SameNum++;
if(SameNum>=5)//&&m_bCurrent
//发现
{
//m_bCurrent=FALSE;
m_cResult="发现!";
UpdateData(FALSE); //报警
file.Close();
return TRUE;
}
}
else
{
//i=(i+1024)-nStrLen;
if((long)(i+1024- nStrLen)>=(FileStatus.m_size))
break;
file.Seek(i+1024-nStrLen,CFile::begin);
i=i+1024-nStrLen;
}
}
file.Close();