码迷,mamicode.com
首页 > 其他好文 > 详细

检测dll是32/64位 ?

时间:2015-03-09 09:26:47      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

检测dll是32/64位 ?


void CCheck32Or64Dlg::OnButton2() 
{
	CString fileName = "";
	CFileDialog *fileDialog = new CFileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY,"Dll Files(*.dll)|*.dll|Exe Files(*.exe)|*.exe||",NULL);
	if(fileDialog->DoModal()==IDOK)
	{
		fileName = fileDialog->GetPathName();
		byte buf[4];
		CFile file(fileName,CFile::modeRead);
		file.Seek(0x40-4,0);
		file.Read(buf,4);
		int a,b,c,d;
		a = int(buf[0]);
		b = int(buf[1])*256;
		c = int(buf[2])*256*256;
		d = int(buf[3])*256*256*256;
		int sum = a+b+c+d;
		file.Seek(sum+4,0);
		byte bufMachine[2];
		file.Read(bufMachine,2);
		int machine = (int)bufMachine[0] + (int)(bufMachine[1])*256;
		if(machine == 0x14C)
		{
			MessageBox(fileDialog->GetFileName()+"是32位PE文件","检测结果");
		}
		else if(machine == 0x8664)
		{
			MessageBox(fileDialog->GetFileName()+"是64位PE文件","检测结果");
		}
		else
		{
			MessageBox("未能识别:"+fileDialog->GetFileName()+"多少位的PE文件!","检测结果");
		}
	}
}


检测dll是32/64位 ?

标签:

原文地址:http://blog.csdn.net/mao0514/article/details/44150329

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!