⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlginput2.cpp

📁 PCI的一个测试程序,可以测试PCI driver和BOARD的功能.
💻 CPP
字号:
// DlgInput2.cpp : 实现文件
//

#include "stdafx.h"
#include "PCIEBoardTest.h"
#include "DlgInput2.h"
#include ".\dlginput2.h"


// CDlgInput2 对话框

IMPLEMENT_DYNAMIC(CDlgInput2, CDialog)
CDlgInput2::CDlgInput2(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgInput2::IDD, pParent)
    , m_strInputAddr(_T(""))
    , m_strInputData(_T(""))
{
    m_uMaxAddr = 0;
}

CDlgInput2::~CDlgInput2()
{
}

void CDlgInput2::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    DDX_Text(pDX, IDC_EDIT_INPUT2_ADDR, m_strInputAddr);
    DDX_Text(pDX, IDC_EDIT_INPUT2_DATA, m_strInputData);
}


BEGIN_MESSAGE_MAP(CDlgInput2, CDialog)
    ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()


// CDlgInput2 消息处理程序
void    CDlgInput2::SetMaxAddr(ULONG    p_uMaxAddr)
{
    m_uMaxAddr = p_uMaxAddr;
}



void CDlgInput2::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData();

    int     i;

    m_uAddr = 0;

    for(i=0; i<m_strInputAddr.GetLength(); ++i)
    {
        char ch = m_strInputAddr.GetAt(i);

        if (ch >= '0' && ch <= '9')
        {
            m_uAddr <<= 0x04;
            m_uAddr += ch - '0';
        }
        else if (ch >= 'a' && ch <= 'f')
        {
            m_uAddr <<= 0x04;
            m_uAddr += ch - 'a' + 10;
        }
        else if(ch >= 'A' && ch <= 'F')
        {
            m_uAddr <<= 0x04;
            m_uAddr += ch - 'A' + 10;
        }
        else
        {
            MessageBox("Must Input HEX data!");
            GetDlgItem(IDC_EDIT_INPUT2_ADDR)->SetFocus();
            return;
        }
    }


    m_uData = 0;
    for(i=0; i<m_strInputData.GetLength(); ++i)
    {
        char ch = m_strInputData.GetAt(i);

        if (ch >= '0' && ch <= '9')
        {
            m_uData <<= 0x04;
            m_uData += ch - '0';
        }
        else if (ch >= 'a' && ch <= 'f')
        {
            m_uData <<= 0x04;
            m_uData += ch - 'a' + 10;
        }
        else if(ch >= 'A' && ch <= 'F')
        {
            m_uData <<= 0x04;
            m_uData += ch - 'A' + 10;
        }
        else
        {
            MessageBox("Must Input HEX data!");
            GetDlgItem(IDC_EDIT_INPUT2_DATA)->SetFocus();
            return;
        }
    }

    if (m_uMaxAddr > 0 && m_uAddr >= m_uMaxAddr)
    {
        MessageBox("Addr Overflow!");
        GetDlgItem(IDC_EDIT_INPUT2_ADDR)->SetFocus();
        return;
    }

    if (m_uAddr & 0x03)
    {
        MessageBox("Addr must align32!");
        GetDlgItem(IDC_EDIT_INPUT2_ADDR)->SetFocus();
        return;
    }


    OnOK();
}

ULONG   CDlgInput2::GetAddr()
{
    return m_uAddr;
}

ULONG   CDlgInput2::GetData()
{
    return m_uData;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -