日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

VS2017-VC++校验和计算小工具

發布時間:2025/3/21 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2017-VC++校验和计算小工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

運行界面如下:

輸入格式要求:必須是ascii代表數字的字符(0-F,大小寫不限),必須成雙,可以有空格。

主要代碼:

CMFCApplicationBleApAnalogDlg::CMFCApplicationBleApAnalogDlg(CWnd* pParent /*=nullptr*/)
?? ?: CDialogEx(IDD_MFCAPPLICATIONBLEAPANALOG_DIALOG, pParent)
?? ?, m_edit1_data(_T(""))
?? ?, m_edit2_data(_T(""))
{
?? ?m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CMFCApplicationBleApAnalogDlg::DoDataExchange(CDataExchange* pDX)
{
?? ?CDialogEx::DoDataExchange(pDX);
?? ?DDX_Text(pDX, IDC_EDIT1, m_edit1_data);
?? ?DDX_Text(pDX, IDC_EDIT2, m_edit2_data);
?? ?DDX_Control(pDX, IDC_RADIO1, m_radio1);
?? ?DDX_Control(pDX, IDC_RADIO2, m_radio2);
}

BEGIN_MESSAGE_MAP(CMFCApplicationBleApAnalogDlg, CDialogEx)
?? ?ON_WM_SYSCOMMAND()
?? ?ON_WM_PAINT()
?? ?ON_WM_QUERYDRAGICON()
?? ?ON_BN_CLICKED(IDC_CLEAR_1, &CMFCApplicationBleApAnalogDlg::OnBnClickedClear1)
?? ?ON_BN_CLICKED(IDC_COMPUTER_OK, &CMFCApplicationBleApAnalogDlg::OnBnClickedComputerOk)
?? ?ON_BN_CLICKED(IDC_CLEAR_2, &CMFCApplicationBleApAnalogDlg::OnBnClickedClear2)
END_MESSAGE_MAP()


// CMFCApplicationBleApAnalogDlg 消息處理程序

BOOL CMFCApplicationBleApAnalogDlg::OnInitDialog()
{
?? ?CDialogEx::OnInitDialog();

?? ?// 將“關于...”菜單項添加到系統菜單中。

?? ?// IDM_ABOUTBOX 必須在系統命令范圍內。
?? ?ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
?? ?ASSERT(IDM_ABOUTBOX < 0xF000);

?? ?CMenu* pSysMenu = GetSystemMenu(FALSE);
?? ?if (pSysMenu != nullptr)
?? ?{
?? ??? ?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);?? ??? ?// 設置小圖標

?? ?// TODO: 在此添加額外的初始化代碼

?? ?m_radio1.EnableWindow(TRUE);
?? ?m_radio2.EnableWindow(TRUE);
?? ?m_radio1.SetCheck(TRUE);

?? ?return TRUE; ?// 除非將焦點設置到控件,否則返回 TRUE
}

void CMFCApplicationBleApAnalogDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
?? ?if ((nID & 0xFFF0) == IDM_ABOUTBOX)
?? ?{
?? ??? ?CAboutDlg dlgAbout;
?? ??? ?dlgAbout.DoModal();
?? ?}
?? ?else
?? ?{
?? ??? ?CDialogEx::OnSysCommand(nID, lParam);
?? ?}
}

// 如果向對話框添加最小化按鈕,則需要下面的代碼
// ?來繪制該圖標。 ?對于使用文檔/視圖模型的 MFC 應用程序,
// ?這將由框架自動完成。

void CMFCApplicationBleApAnalogDlg::OnPaint()
{
?? ?if (IsIconic())
?? ?{
?? ??? ?CPaintDC dc(this); // 用于繪制的設備上下文

?? ??? ?SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

?? ??? ?// 使圖標在工作區矩形中居中
?? ??? ?int cxIcon = GetSystemMetrics(SM_CXICON);
?? ??? ?int cyIcon = GetSystemMetrics(SM_CYICON);
?? ??? ?CRect rect;
?? ??? ?GetClientRect(&rect);
?? ??? ?int x = (rect.Width() - cxIcon + 1) / 2;
?? ??? ?int y = (rect.Height() - cyIcon + 1) / 2;

?? ??? ?// 繪制圖標
?? ??? ?dc.DrawIcon(x, y, m_hIcon);
?? ?}
?? ?else
?? ?{
?? ??? ?CDialogEx::OnPaint();
?? ?}
}

//當用戶拖動最小化窗口時系統調用此函數取得光標
//顯示。
HCURSOR CMFCApplicationBleApAnalogDlg::OnQueryDragIcon()
{
?? ?return static_cast<HCURSOR>(m_hIcon);
}

?

void CMFCApplicationBleApAnalogDlg::OnBnClickedClear1()
{
?? ?m_edit1_data.Empty();//發送后清空輸入框
?? ?UpdateData(false);//更新編輯框內容
}


void CMFCApplicationBleApAnalogDlg::OnBnClickedComputerOk()
{
?? ?int i;
?? ?int count;
?? ?int dataLen;
?? ?CString m_SendData;
?? ?CByteArray m_Array;
?? ?unsigned char checkSum;
?? ?unsigned char dataArray[128];
?? ?unsigned char hexArray[128];
?? ?UpdateData(true);//更新變量內容
?? ?count = m_edit1_data.GetLength();
?? ?m_Array.RemoveAll();
?? ?m_Array.SetSize(count+1);
?? ?dataLen = 0;
?? ?for(i=0; i<count; i++)
?? ?{
?? ??? ?if (((m_edit1_data[i] >= '0' && m_edit1_data[i] <= '9')) ||
?? ??? ??? ?((m_edit1_data[i] >= 'A' && m_edit1_data[i] <= 'Z')) ||
?? ??? ??? ?((m_edit1_data[i] >= 'a' && m_edit1_data[i] <= 'z')))
?? ??? ?{
?? ??? ??? ?m_Array.SetAt(dataLen, m_edit1_data[i]);
?? ??? ??? ?dataLen++;
?? ??? ?}?? ??? ?
?? ?}
?? ?if(dataLen < 2)//ascii format!
?? ?{
?? ??? ?AfxMessageBox(_T("數據輸入錯誤"));
?? ??? ?return;
?? ?}
?? ?if(dataLen % 2 == 0)
?? ?{
?? ??? ?
?? ?}
?? ?else
?? ?{
?? ??? ?AfxMessageBox(_T("數據輸入錯誤"));
?? ??? ?return;
?? ?}
?? ?
?? ?for (i = 0; i < dataLen; i++)
?? ?{
?? ??? ?dataArray[i] = m_Array[i];
?? ?}
?? ?unsigned char hexLen = 0;
?? ?for (i = 0; i < dataLen; i += 2)
?? ?{
?? ??? ?hexArray[hexLen++] = AsciiToHex(dataArray+i);
?? ?}?? ?
?? ?//checkSum = BleGetCheckSum(hexArray +1, dataLen/2-1);
?? ?checkSum = BleGetCheckSum(hexArray + 0, dataLen / 2 - 0);
?? ?HexToAscii(checkSum, &dataArray[i]);
?? ?dataLen += 2;

?? ?m_SendData = "";
?? ?for(i=0; i<dataLen; i++)
?? ?{
?? ??? ?CString tempStr;
?? ??? ?if (i % 2 == 0 && i > 0)
?? ??? ?{
?? ??? ??? ?m_SendData = m_SendData + _T(" ");
?? ??? ?}
?? ??? ?tempStr.Format(_T("%c"), dataArray[i]);
?? ??? ?m_SendData = m_SendData + tempStr;
?? ?}
?? ?m_edit2_data = m_SendData;
?? ?UpdateData(false);//更新編輯框內容
}


void CMFCApplicationBleApAnalogDlg::OnBnClickedClear2()
{
?? ?m_edit2_data.Empty();//發送后清空輸入框
?? ?UpdateData(false);//更新編輯框內容
}

?


unsigned char CMFCApplicationBleApAnalogDlg::BleGetCheckSum(unsigned char *bleDataArray, unsigned int dataLen)
{
?? ?unsigned int i;
?? ?unsigned char checkSum = 0x00;
?? ?if (m_radio1.GetCheck())
?? ?{
?? ??? ?for (i = 0; i < dataLen; i++)
?? ??? ?{
?? ??? ??? ?checkSum = checkSum ^ bleDataArray[i];
?? ??? ?}
?? ?}
?? ?else
?? ?{
?? ??? ?for (i = 0; i < dataLen; i++)
?? ??? ?{
?? ??? ??? ?checkSum = checkSum + bleDataArray[i];
?? ??? ?}
?? ?}

?? ?return checkSum;
}

?


unsigned char CMFCApplicationBleApAnalogDlg::GetAscii(unsigned char halfHexValue)
{
?? ?unsigned char asciiValue;
?? ?if (halfHexValue < (9+1))
?? ?{
?? ??? ?asciiValue = 0x30 + halfHexValue;
?? ?}
?? ?else
?? ?{
?? ??? ?asciiValue = 'A' + (halfHexValue-10);
?? ?}
?? ?return asciiValue;
}


void CMFCApplicationBleApAnalogDlg::HexToAscii(unsigned char hexValue, unsigned char *ascii)
{
?? ?unsigned char high;
?? ?unsigned char low;
?? ?high?? ?= (hexValue >> 4) & 0x0F;
?? ?low?? ??? ?= (hexValue >> 0) & 0x0F;
?? ?ascii[0] = GetAscii(high);
?? ?ascii[1] = GetAscii(low);
}

?

unsigned char CMFCApplicationBleApAnalogDlg::AsciiToHalfHex(unsigned asciiByte)
{
?? ?unsigned halfHex;
?? ?if((asciiByte >= '0' && asciiByte <= '9'))
?? ?{
?? ??? ?halfHex = asciiByte-0x30;
?? ??? ?return halfHex;
?? ?}
?? ?if ((asciiByte >= 'A' && asciiByte <= 'Z'))
?? ?{
?? ??? ?halfHex = 0x0A+(asciiByte-'A');
?? ??? ?return halfHex;
?? ?}
?? ?if ((asciiByte >= 'a' && asciiByte <= 'z'))
?? ?{
?? ??? ?halfHex = 0x0A + (asciiByte - 'a');
?? ??? ?return halfHex;
?? ?}
?? ?return 0x00;
}

?

unsigned char CMFCApplicationBleApAnalogDlg::AsciiToHex(unsigned char *asciiArray)
{
?? ?unsigned halfHexHigh;
?? ?unsigned halfHexLow;
?? ?halfHexHigh = AsciiToHalfHex(asciiArray[0]);
?? ?halfHexLow?? ?= AsciiToHalfHex(asciiArray[1]);
?? ?return (halfHexHigh << 4) | halfHexLow;
}

完整工程下載地址:https://download.csdn.net/download/qinrenzhi/10915321

?

總結

以上是生活随笔為你收集整理的VS2017-VC++校验和计算小工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲区一区二区 | 夜夜操天天射 | 麻豆av在线播放 | 国产不卡在线播放 | 真性中出| 欧美精品中文 | 黄色片在哪看 | 日本黄色一级 | 色七七久久| 激情五月婷婷色 | 我想看一级黄色片 | 97久久人国产精品婷婷 | 国产成人精品视频在线观看 | 69国产 | 久久久久久成人 | 国产精品超碰 | 青娱乐极品视频在线 | 国产免费无码一区二区视频 | 九九综合视频 | 伊人手机视频 | 欧美色xxxx | 成人手机在线免费视频 | 欧美精选一区二区 | 日韩激情在线观看 | 亚洲美女综合网 | 另类男人与善交video | 中文字幕视频观看 | 欧美日韩一区二区三区69堂 | 顶级毛茸茸aaahd极品 | 欧美日韩综合网 | 精品黑人一区二区三区 | 久久精品在线 | 国产精品福利导航 | www九九热| 久久成| 伊伊综合网 | 91婷婷色 | 男女操网站 | 天堂在线观看视频 | 囯产精品一品二区三区 | 色综合久久久久无码专区 | 国产伊人一区 | 在线欧美日韩国产 | 91啪国产 | 亚洲天堂男人天堂 | 12av在线| 日本三级韩国三级三级a级中文 | 人妻精品一区一区三区蜜桃91 | 亚洲一区二区三区观看 | av色成人 | 又污又黄的网站 | 国产精品国产精品国产专区不卡 | 四虎久久久 | 天堂网久久 | 国产精品福利导航 | www.五月婷婷| 奇米成人影视 | 寻找身体恐怖电影免费播放 | 欧美大片在线免费观看 | 国产福利一区二区三区在线观看 | 欧美性猛交xxxx免费看久久久 | 91自啪| 草草在线免费视频 | 亚洲成人精品在线观看 | 国产精品一区二区无线 | 在线视频a | 日本色偷偷 | 国产网站av| 双性人bbww欧美双性 | 天天色官网| 国产乱码精品一区二区三区亚洲人 | 国产午夜福利视频在线观看 | 97视频一区二区 | 久久妇女| 插久久 | 国产哺乳奶水91在线播放 | 国产自在线拍 | 狠狠操天天射 | 亚洲精品一二 | 成人精品影视 | 中文在线观看视频 | 亚洲综合成人网 | 亚洲av成人无码网天堂 | 中文字幕在线一区二区三区 | 一区二区三区免费在线视频 | 日日躁夜夜躁狠狠久久av | 色婷婷精品久久二区二区密 | 91丨九色丨蝌蚪丨老版 | 插插影视| 黑人vs亚洲人在线播放 | 亚洲成人av一区二区三区 | 男女草逼网站 | 91精品国产一区二区在线观看 | 久久在线观看 | 国产一级内谢 | 亚洲久久久久久久 | 日韩成人av片| 国产av日韩一区二区三区精品 | 青青草偷拍视频 |