linux下查看lpc设备的基地址,PE查看器Dlg.cpp

这是一个PE查看器的实现代码,包含对话框类和相关消息处理程序,用于查看PE文件的段信息、入口地址、基地址等。用户可以打开文件,查看节表信息,并进行地址转换操作。此外,代码还提供了添加新段的功能。
摘要由CSDN通过智能技术生成

// PE查看器Dlg.cpp : 实现文件

//

#include "stdafx.h"

#include "PE查看器.h"

#include "PE查看器Dlg.h"

#include "afxdialogex.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// 用于应用程序“关于”菜单项的 CAboutDlg 对话框

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

// 对话框数据

#ifdef AFX_DESIGN_TIME

enum { IDD = IDD_ABOUTBOX };

#endif

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

// CPE查看器Dlg 对话框

CPE查看器Dlg::CPE查看器Dlg(CWnd* pParent /*=NULL*/)

: CDialogEx(IDD_PE_DIALOG, pParent)

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CPE查看器Dlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

DDX_Control(pDX, IDC_LIST1, m_SectionList);

}

BEGIN_MESSAGE_MAP(CPE查看器Dlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BTN_OPENFILE, &CPE查看器Dlg::OnBnClickedBtnOpenfile)

ON_BN_CLICKED(IDC_BTN_SEE, &CPE查看器Dlg::OnBnClickedBtnSee)

ON_BN_CLICKED(IDC_BTN_EXIT, &CPE查看器Dlg::OnBnClickedBtnExit)

ON_BN_CLICKED(IDC_RADIO_VirAddr, &CPE查看器Dlg::OnBnClickedRadioViraddr)

ON_BN_CLICKED(IDC_RADIO_OppVIrAddr, &CPE查看器Dlg::OnBnClickedRadioOppviraddr)

ON_BN_CLICKED(IDC_RADIO_FileOffset, &CPE查看器Dlg::OnBnClickedRadioFileoffset)

ON_BN_CLICKED(IDC_BTN_CAl, &CPE查看器Dlg::OnBnClickedBtnCal)

ON_BN_CLICKED(IDC_BNTADD, &CPE查看器Dlg::OnBnClickedBntadd)

END_MESSAGE_MAP()

// CPE查看器Dlg 消息处理程序

BOOL CPE查看器Dlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

// 将“关于...”菜单项添加到系统菜单中。

// IDM_ABOUTBOX 必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

BOOL bNameValid;

CString strAboutMenu;

bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动

// 执行此操作

SetIcon(m_hIcon, TRUE);// 设置大图标

SetIcon(m_hIcon, FALSE);// 设置小图标

InitSectionList();

m_hFile = NULL;

m_hMap = NULL;

m_lpBase = NULL;

m_pNTHdr = NULL;

m_pSecHdr = NULL;

m_pDosHdr = NULL;

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE

}

void CPE查看器Dlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值