zoukankan      html  css  js  c++  java
  • 检测dll是32/64位 ? 分类: VC++ windows驱动程序WDM 2015-03-09 08:18 411人阅读 评论(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文件!","检测结果");
    		}
    	}
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    解析ASP.NET WebForm和Mvc开发的区别
    relink:在Linux/UNIX平台上relink Oracle软件(转)
    Java开发 Eclipse使用技巧(转)
    职场人生:情商
    RPC
    PLSQL Developer Debug
    uC/OS-III学习2::uC/OS-III LED闪烁实验
    Flex文件读取报错
    C++字节对齐问题
    写可測试的代码
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706449.html
Copyright © 2011-2022 走看看