• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++判断pe文件实例

C++判断pe文件实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++游戏开发实例,c++实例开发,linux c++项目实例,c++串口通信实例,c++程序实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C++判断pe文件的方法。分享给大家供大家参考。

具体实现方法如下:

#include <afxdlgs.h>是为了使用CFileDialog
main.h如下:

 
class CMyApp:public CWinApp 
{ 
    BOOL InitInstance(); 
};</div>

main.cpp如下:

#include <afxdlgs.h> 
 
CMyApp theApp; 
 
BOOL CMyApp::InitInstance() 
{ 
    CFileDialog dlg(TRUE); 
    if (dlg.DoModal() != IDOK) 
    { 
        return FALSE; 
    } 
    //打开文件 
    HANDLE hFile = ::CreateFile(dlg.GetPathName(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 
    if (INVALID_HANDLE_VALUE == hFile) 
    { 
        return FALSE; 
    } 
    IMAGE_DOS_HEADER dosHeader; 
    IMAGE_NT_HEADERS32 ntHeader; 
    DWORD dwReturn; 
    BOOL bIsPe=FALSE; 
    ::ReadFile(hFile, &dosHeader, sizeof(IMAGE_DOS_HEADER), &dwReturn, NULL); 
    if (dwReturn == sizeof(IMAGE_DOS_HEADER)) 
    { 
        if (dosHeader.e_magic == IMAGE_DOS_SIGNATURE) //mz 
        { 
            if (-1 != ::SetFilePointer(hFile, dosHeader.e_lfanew, NULL, FILE_BEGIN)) 
            { 
                ::ReadFile(hFile, &ntHeader, sizeof(IMAGE_NT_HEADERS32), &dwReturn, NULL); 
                if (dwReturn == sizeof(IMAGE_NT_HEADERS32)) 
                { 
                    if (ntHeader.Signature == IMAGE_NT_SIGNATURE) //pe 
                    { 
                        bIsPe = TRUE; 
                    } 
                } 
            } 
        } 
    } 
    ::CloseHandle(hFile); //与上面的CreateFile区对写 
    if (bIsPe) 
    { 
        MessageBoxA(NULL, "is a pe file", "", MB_OK); 
    } 
    else 
    { 
        MessageBoxA(NULL, "not a pe file", "", MB_OK); 
    } 
    return FALSE; 
}</div>

希望本文所述对大家的C++程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++ 将文件数据一次性加载进内存实例代码
  • C++ 面试题翻译电话号码实例代码
  • C++中实现把表的数据导出到EXCEL并打印实例代码
  • C++实例输入多行数字到数组
  • 实例讲解C++编程中对设计模式中的原型模式的使用
  • C++基础知识实例解析(一)
  • C++双向循环列表用法实例
  • C++读写INI配置文件的类实例
  • C++广播通信实例
  • C++进程间共享数据实例

相关文章

  • 2017-05-28详解C++编程的多态性概念
  • 2017-05-28基于errno返回值的对应错误码的详细介绍
  • 2017-05-28C++指向类成员函数的指针详细解析
  • 2017-05-28浅谈C++基类的析构函数为虚函数
  • 2017-05-28高效实现整型数字转字符串int2str的方法
  • 2017-05-28基于C程序启动代码的深入分析
  • 2017-05-28C语言快速幂取模算法小结
  • 2017-05-28优先队列(priority_queue)的C语言实现代码
  • 2017-05-28距离详解Linux下的UDP方式通讯
  • 2017-05-28C++中输入输出流及文件流操作总结

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于C++一些特性的探究
    • C语言中isalnum()函数和isalpha()函数的对比使用
    • 简述C语言中system()函数与vfork()函数的使用方法
    • Windows进程崩溃问题的定位方法
    • 简单分析C++指针的操作和运算
    • C++ Assert()断言机制原理以及使用方法
    • C语言中隐藏结构体的细节
    • opencv 做人脸识别 opencv 人脸匹配分析
    • 关于双向链表的增删改查和排序的C++实现
    • 深入C++拷贝构造函数的总结详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有